Network control of applications using application states

ABSTRACT

Application states of applications associated with a communication device can be network controlled. An application agent, associated with an application used by the communication device, controls transitioning the application between application states based on network indicators received or network events detected from a communication network. The application states include active state or doze state. An application management component associated with the communication network at least partially controls transitioning the application between application states to facilitate controlling network traffic or reducing network congestion. The application agent or application management component can map application states to various factors, including radio states, congestion level, application performance indicators, network policies, or user policies, to facilitate determining which application state to apply to an application at a given time. The application agent can be in a centralized location, or at a same or different location as the application source.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to each of,U.S. patent application Ser. No. 14/970,485, filed Dec. 15, 2015, andentitled “NETWORK CONTROL OF APPLICATIONS USING APPLICATION STATES,”which is a continuation of U.S. patent application Ser. No. 14/621,270(now U.S. Pat. No. 9,253,095), filed Feb. 12, 2015, and entitled“NETWORK CONTROL OF APPLICATIONS USING APPLICATION STATES,” which is acontinuation of U.S. patent application Ser. No. 13/492,434 (now U.S.Pat. No. 8,995,339), filed Jun. 8, 2012, and entitled “NETWORK CONTROLOF APPLICATIONS USING APPLICATION STATES,” the entireties of whichapplications are hereby incorporated herein by reference.

TECHNICAL FIELD

This disclosure relates generally to network communications, e.g., tonetwork control of applications using application states.

BACKGROUND

A wireless communication system can be utilized to provide wirelessaccess to various communication services (e.g., voice, video, data,messaging, content broadcast, etc.) for users of the system. Wirelesscommunication systems can operate according to a variety of networkspecifications and/or standards, such as, for example, Universal MobileTelecommunications System (UMTS), Third Generation Partnership Project(3GPP) Long Term Evolution (LTE), High Speed Packet Access (HSPA). Thesespecifications and/or standards use different modulation techniques,such as Code Division Multiple Access (CDMA), Time Division MultipleAccess (TDMA), Frequency Division Multiple Access (FDMA), Multi-CarrierCDMA (MC-CDMA), Single-Carrier CDMA (SC-CDMA), Orthogonal FrequencyDivision Multiple Access (OFDMA), Single-Carrier Frequency DivisionMultiple Access (SC-FDMA), and so on.

Communication devices (e.g., wireless communication devices), such asmobile phones, electronic tablets, electronic gaming devices, andcomputers, are increasingly using applications to perform variousfunctions and to communicate information between these communicationdevices and other communication devices (e.g., other mobile phones,electronic tablets, electronic gaming devices, computers, servers,etc.). An application can reside on a user's communication device, in acloud, and/or on a server farm, for example.

In wireless communication networks, management of network traffic andnetwork congestion can be desirable to facilitate efficientcommunication of traffic between communication devices. The increaseduse of applications by communication devices, increase in the amount oftraffic being communicated in communication networks, differences in theclassifications and/or characteristics of newly introduced applications,and/or other factors can make management of network traffic and networkcongestion increasingly more challenging and problematic for today'ssystems.

The above-described description is merely intended to provide acontextual overview of wireless communication networks, and is notintended to be exhaustive.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a block diagram of an example system that can controltransition of application states of one or more applications associatedwith user equipment (UE), in accordance with various aspects andembodiments described herein.

FIG. 2 depicts a block diagram of an example system that can use anapplication agent to facilitate controlling application states of anapplication(s) associated with UE in accordance with various aspects andembodiments.

FIG. 3 illustrates a diagram of an example application control frameworkthat can be employed to control application states of applicationsassociated with a communication network in accordance with variousaspects and embodiments described herein.

FIG. 4 depicts a block diagram of an example application agent inaccordance with various aspects and embodiments of the disclosed subjectmatter.

FIG. 5 presents a block diagram of an example application managementcomponent in accordance with various aspects and embodiments of thedisclosed subject matter.

FIG. 6 depicts a block diagram of an example UE in accordance with anaspect of the disclosed subject matter.

FIG. 7 illustrates a block diagram of an example access point inaccordance with an aspect of the disclosed subject matter.

FIG. 8 illustrates a flow diagram of an example method for controllingapplication states of an application in accordance with various aspectsand embodiments.

FIG. 9 depicts a flow diagram of another example method for controllingapplication states of an application in accordance with various aspectsand embodiments.

FIG. 10 is a flow diagram of still another example method forcontrolling application states of an application in accordance withvarious aspects and embodiments.

FIG. 11 illustrates a flow diagram of an example method for certifyingan application as a qualified (e.g., intelligent) application tofacilitate controlling switching of application states of theapplication in accordance with various aspects and embodiments.

FIG. 12 is a schematic block diagram illustrating a suitable operatingenvironment.

FIG. 13 is a schematic block diagram of a sample-computing environment.

DETAILED DESCRIPTION

Techniques for controlling an application(s) using application statesare presented herein. The disclosed subject matter can include a methodthat can comprise applying, by a system including at least oneprocessor, a mapping function associated with an application, whereinthe mapping function at least in part maps a subset of applicationstates of the application to a subset of wireless communication statesassociated with a communication device that uses the application in acommunication network. The method also can include controlling, by thesystem, transitioning the application between application states basedon the mapping function and a wireless communication state associatedwith the communication device.

The disclosed subject matter also can include a system comprising atleast one memory that stores computer-executable instructions. Thesystem also can include at least one processor, communicatively coupledto the at least one memory, that facilitates execution of thecomputer-executable instructions to at least: apply a mapping functionassociated with an application, wherein the mapping function at least inpart maps a subset of application states of the application to a subsetof radio communication states associated with a mobile communicationdevice that uses the application in a communication network; and controltransition of the application between application states based on themapping function and a radio communication state associated with themobile communication device.

The disclosed subject matter further can comprise a computer programproduct, which can include a computer-readable medium comprisingcomputer executable instructions that, in response to execution by acomputing system, cause the computing system to perform operationscomprising: applying a mapping function associated with an application,wherein the mapping function at least in part maps a subset ofapplication states of the application to a subset of wirelesscommunication states associated with a communication device that usesthe application in a communication network; and controlling switching ofthe application between application states based on the mapping functionand a wireless communication state associated with the communicationdevice.

Further, the disclosed subject matter can include a system comprising atleast one memory that stores computer-executable instructions. Thesystem also can include at least one processor, communicatively coupledto the at least one memory, that facilitates execution of thecomputer-executable instructions to at least: provide information thatindicates an application is to be switched between a first applicationstate and a second application state of a subset of application statesassociated with the application; and control transition of theapplication between the first application state and the secondapplication state based on a mapping function associated with theapplication and a wireless communication state of a mobile communicationdevice associated with a communication network, wherein the mappingfunction maps the subset of application states associated with theapplication to a subset of wireless communication states associated withthe mobile communication device.

The description and the annexed drawings set forth in detail certainillustrative aspects of the disclosed subject matter. These aspects areindicative, however, of but a few of the various ways in which theprinciples of the disclosed subject matter may be employed. Thedisclosed subject matter is intended to include all such aspects andtheir equivalents. Other advantages and distinctive features of thedisclosed subject matter will become apparent from the followingdetailed description of the disclosed subject matter when considered inconjunction with the drawings.

Various aspects of the disclosed subject matter are now described withreference to the drawings, wherein like reference numerals are used torefer to like elements throughout. In the following description, forpurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of one or more aspects. It maybe evident, however, that such aspect(s) may be practiced without thesespecific details. In other instances, well-known structures and devicesare shown in block diagram form in order to facilitate describing one ormore aspects.

Communication devices (e.g., wireless communication devices), such asmobile phones, electronic tablets, electronic gaming devices, andcomputers, are increasingly using applications, including intelligentapplications, to communicate information between these communicationdevices and other communication devices (e.g., other mobile phones,electronic tablets, electronic gaming devices, computers, servers,etc.). An application can reside on a user's communication device, in acloud, and/or on a server farm, for example.

In wireless communication networks, management of network traffic andnetwork congestion can be desirable to facilitate efficientcommunication of traffic between communication devices. The increaseduse of applications by communication devices, increase in the amount oftraffic being communicated in communication networks, differences in theclassifications and/or characteristics of newly introduced applications,continuing evolution of applications, and various other factors can makemanagement of network traffic and network congestion increasingly morechallenging and problematic for today's systems. Network behavior andapplication behavior can be dependent on a number of factors, such as,for example, the number of active users, network congestion level, userbehavior with regard to communication devices, and/or the demographicsof the user environments, including mobile communication devicecapabilities and the presence of other active applications on the mobilecommunication devices.

Currently, communication networks lack information relating toapplications that can be desirable to better manage communication ofnetwork traffic. Also, applications often may not be aware of underlyingnetwork mechanisms or congestion states of the network, and theapplications typically may not be able to coordinate with the network torelieve the network congestion. Traffic flow and network congestioncontrol can be manageable through taking preventative and reactivemeasures, however, when network congestion indications are present, ifnothing is done or inefficient measures are taken, there can be asignificant (e.g., high) probability of massive chain reactions in thenetwork, which can cause greater problems in the network. One potentialway to manage application operations in relation to network conditions(e.g., network congestion levels) can be to employ constant trafficmonitoring by end devices (e.g., mobile phones, computers, etc.).However, constant traffic monitoring by the end devices can unduly taxthe end devices in terms of configuration, enabling, disabling, andreporting.

To that end, techniques that can facilitate network control ofapplication states of applications associated with a communicationdevice are presented herein. An application agent (e.g., proxy agent),which can be associated with an application used by the communicationdevice, can identify a state of the application and can communicate thatapplication state to an application management component associated withthe communication network. The application states can include, forexample, an active state or a doze (e.g., inactive, sleep, etc.) state,although, in some implementations, one or more other application statescan be used in addition to or as an alternative to the active stateand/or doze state. In some implementations, the application agent cancommunicate other application-related information, such as, for example,an elasticity level of the application (e.g., more elasticity canindicate a less time-critical application, less elasticity can indicatea more time-critical application (e.g., a real time application, such asVoice over Internet Protocol (VoIP), video streaming, or audiostreaming), performance indicators (e.g., key performance indicators(KPIs)) associated with the application, and/or application category,etc., to the application management component.

The application agent or the application management component cangenerate a mapping function mapping application states of an applicationto various factors, such as radio states (e.g., wireless communicationaccess states, such as, for example, a fetch (FTCH) state, a dedicatedchannel (DCH) state, an idle state, etc.), network congestion level,performance indicators (e.g., KPIs) associated with the application,network policies, user policies, etc., to facilitate determining whichapplication state to apply to the application at a given time. The KPIscan include indicators relating to, for example, VoIP, video streaming,multimedia, electronic gaming, wireless communication factors orparameters, near field communication factors or parameters, securityfactors or parameters, bandwidth factors or parameters, location-relatedparameters, etc.

The application agent can monitor, detect, and/or receive informationrelating to application conditions (e.g., application state) of theapplication, information relating to network conditions (e.g., indicatorrelating to network congestion level) from the application managementcomponent, network-related information from a lower network layer(s)(e.g., network-related state or event information), and/or informationthat can be obtained via use of a software development kit(s) (SDK(s))or application programming interface(s) (API(s)). At desired times(e.g., periodically, or in response to detected or received information(e.g., network condition-related indicator and/or application controlinformation from the application management component, network-relatedstate or event detected in a lower network layer, etc.)), theapplication agent can analyze the various factors, parameters,information (e.g., network state or event information from lower networklayers), etc., and, using (e.g., applying) the mapping function, canidentify an application state to apply to the application, based atleast in part on the analysis results and the mapping function.

For example, the application agent can receive a networkcondition-related indicator (e.g., a network congestion indicator thatcan indicate the network is not experiencing a high level of networkcongestion, a network congestion indicator that can indicate thecommunication network has reached (e.g., breached) a certain thresholdlevel of network congestion (e.g., a high (e.g., maximum) thresholdnetwork congestion level)), from the application management component.In response to receiving that network condition-related indicator, theapplication agent can analyze the network condition-related indicatorand/or other information, and can apply the mapping function to thatindicator and/or other information to determine which application state(e.g., active state, doze state) the application is to be set. In someimplementations, the mapping function, and/or a set of defined rulesthat can constitute the mapping function, can be stored (e.g., in theform of a rules look-up table) in a data store associated with theapplication agent.

In response to determining the application state to be employed for theapplication, the application agent can generate control information(e.g., control command) that can indicate the application state to whichthe application is to be set (e.g., transitioned, or maintained). Theapplication agent can communicate the control information to theapplication to facilitate controlling the application state of theapplication. The application can receive the control information and canset (e.g., transition, maintain) the application to the applicationstate indicated by the control information.

In accordance with various implementations, the application agent can belocated in a centralized location (e.g., in or associated with a corenetwork), at a same location as the application source (e.g., on thecommunication device when the application is located on thecommunication device, in the cloud when the application is location inthe cloud, etc.), and/or at a different location (e.g., on thecommunication device, wherein the application is located in the cloud;in the core network, wherein the application is located on thecommunication device or in the cloud; etc.). In some implementations,the application agent can be distributed across multiple components(e.g., communication device, core network, cloud, etc.) of thecommunication network.

An application that meets a defined certification criterion(s) can becertified as a qualified (e.g., intelligent) application by thecommunication network (e.g., the application management component of thecommunication network). In some implementations, applications (e.g.,intelligent applications) that meet the defined certificationcriterion(s) can be automatically certified by the communicationnetwork. The defined certification criterion(s) can include, forexample, that the application will transition between application statesin response to control information from the application managementcomponent; the application will comply with applicable rules, SDKs,and/or APIs; the application (and/or associated application agent) willprovide information regarding its current application state (e.g., uponrequest, periodically, in response to a triggering event, etc.); and/orthe application (and/or associated application agent) will providedesired information to the application agent and/or applicationmanagement component to enable the application agent and/or theapplication management component to generate a mapping functioncomprising a mapping between the application states and the variousfactors. An SDK or API can be used to facilitate registering orcertifying an application with the application management component,exchanging of information (e.g., application states, KPIs, etc.) betweenthe network and the application agent, etc., to facilitate enabling theapplication agent and application management component to manageoperation of the application.

Referring now to the drawings, FIG. 1 illustrates a block diagram of anexample system 100 that can control transition of application states ofone or more applications associated with user equipment (UE), inaccordance with various aspects and embodiments described herein. Thesystem 100 can comprise a UE 102 (e.g., mobile and/or wirelesscommunication device, such as a mobile phone (e.g., 3GPP UniversalMobile Telecommunications System (UMTS) phone), personal digitalassistant (PDA), computer, set-top box, electronic notebook, electronicpad or tablet, electronic gaming device, etc.) that can operate andcommunicate in a communication network environment. In an aspect, the UE102 can be communicatively connected via a wireless communicationconnection(s) via an access point (AP) 104 to a communication network(s)106 (COMM. NW(s) 106).

In an aspect, as the UE 102 is moved through a wireless communicationnetwork environment, at various times, the UE 102 can be connected(e.g., wirelessly connected) to one of a plurality of APs (e.g., macroor cellular AP, femto AP, pico AP, Wi-Fi AP, Wi-Max AP, hotspot (e.g.,Hotspot 1.x, Hotspot 2.x, where x is an integer number; UE functioningas a mobile hotspot; etc.), etc.), such as an AP 104, that can operatein the wireless communication network environment. An AP (e.g., 104) canserve a specified coverage area to facilitate communication by the UE102 or other UEs in the wireless communication network environment. TheAP 104 can serve a respective coverage cell (e.g., macrocell, femtocell,picocell, etc.) that can cover a respective specified area, and the AP104 can service mobile wireless devices, such as UE 102, located in therespective area covered by the respective cell, where such coverage canbe achieved via a wireless link (e.g., uplink (UL), downlink (DL)). Whenan attachment attempt is successful, the UE 102 can be served by the AP104 and incoming voice and data traffic can be paged and routed to theUE 102 through the AP 104, and outgoing voice and data traffic from theUE 102 can be paged and routed through the AP 104 to other communicationdevices (e.g., another UE) in the communication network environment. Inan aspect, the UE 102 can be connected and can communicate wirelesslyusing virtually any desired wireless technology, including, for example,cellular, Wi-Fi, Wi-Max, wireless local area networks (WLAN), etc.

In another aspect, the communication network 106 can facilitate wirelessconnection with the UE 102 connected to the AP 104 and facilitatecommunication by or between a UE 102 and another UE(s) or other type ofcommunication device(s) (e.g., computer, server or server farm that caninclude an application server or content server that can be providevideo content, audio content, and/or other content comprising othertypes of information, etc.), such as communication device 108 associatedwith the communication network 106 in the communication networkenvironment. The communication network 106 can include one or morewireline networks and one or more wireless networks, wherein the one ormore wireless networks can be based on one or more various types ofcommunication technology or protocols, such as, for example, ThirdGeneration (3G), Fourth Generation (4G), or x Generation (xG) network,where x can be virtually any desired integer or real value; Wi-Fi; etc.The communication network 106 (e.g., a core network, or a networkcomprising a core network and/or an IP-based network) can facilitaterouting voice and data communications between a communication device(s)(e.g., UE 102) and other communication devices (e.g., another UE,communication device 108) associated with the communication network 106in the communication network environment. The communication network 106also can allocate resources to the UE 102 or other UEs in thecommunication network 106, convert or enforce protocols, establish andenforce Quality of Service (QoS) for the UEs, provide applications orservices in the communication network 106, translate signals, and/orperform other desired functions to facilitate system interoperabilityand communication in the communication network 106 (e.g., wirelessportion of the communication network 106 or wireline portion of thecommunication network 106). The communication network 106 further caninclude desired components, such as routers, nodes, switches,interfaces, controllers, etc., that can facilitate communication of databetween communication devices in the communication network environment.

The system 100 can include one or more application agents 110 (e.g.,proxy agent(s)), which can be associated with one or more applications112 used by or associated with (e.g., communicatively connected to) theUE 102. An application agent 110 can facilitate controlling theoperating state (e.g., active state, doze state, other operating state)of an associated application 112. In accordance with variousimplementations, an application agent(s) 110 can be located on the UE102, the base station 104, the communication network 106, thecommunication device 108, a cloud 114 (e.g., cloud computing system)associated with (e.g., communicatively connected to) the communicationnetwork 106, and/or in another component associated with thecommunication network 106. It is to be appreciated and understood that,in FIG. 1, the dotted lines from the application agent 110 to variouscomponents (e.g., UE 102, base station 104, communication network 106,cloud 114, etc.), and the application agents 110 represented by boxesformed of a dotted line, are intended to illustrate various examplelocations of the application agent(s) 110 in relation to variouscomponents of the system 100.

In accordance with various implementations, an application agent 110 canbe located in a centralized location (e.g., in or associated with a corenetwork), at a same location as the source of the application 112 (e.g.,on the UE 102 when the application 112 is located on the UE 102, in thecloud 114 when the application 112 is location in the cloud 114, etc.),and/or at a different location (e.g., on the UE 102, wherein theapplication 112 is located in the cloud 114; in the core network,wherein the application 112 is located on the UE 102 or in the cloud114; etc.), depending in part on the type of application, type of UE,and/or other factors, in accordance with one or more definedapplication-control criterion. In some implementations, an applicationagent 110 can be distributed across multiple components (e.g., UE 102,core network, cloud 114, etc.) associated with the communication network106.

In accordance with various implementations, an application(s) 112 can belocated on the UE 102, communication network 106, communication device108, cloud 114, and/or in another component associated with thecommunication network 106. It is to be appreciated and understood that,in FIG. 1, the dotted lines from the application 112 to variouscomponents (e.g., UE 102, communication network 106, cloud 114, etc.),and the application(s) 112 represented by a box formed of a dotted line,are intended to illustrate various example locations of theapplication(s) 112 within various components of the system 100. It isalso to be appreciated and understood that the double-arrowed solid linebetween the UE 102 and the application(s) 112 (e.g., one or moreapplications 112) is intended to represent that the UE 102 can beconnected (e.g., directly) with one or more applications 112 using, forexample, one or more various types of wireless communication technology,such as near field communication (NFC) technology, Bluetooth technology,ZigBee technology, etc. In some implementations, the UE 102 can functionas a mobile hotspot (e.g., AP) to which one or more applications 112 canbe wirelessly connected to facilitate communication of traffic (e.g.,voice or data traffic) between an application(s) 112 and thecommunication network 106 via the UE 102. It is to be furtherappreciated and understood that one or more communication devices (e.g.,108) can be located within the cloud 114, wherein, for example, thecloud 114 can include a server farm comprising one or more servers(e.g., application servers) that can be utilized to perform respectiveapplication functions (e.g., VoIP, video streaming, messaging,multimedia, electronic gaming, news-related functions, social mediafunctions, finance-related functions, etc.) based at least in part onthe type of application.

In some implementations, the communication network 106 can include or beassociated with (e.g., communicatively connected to) an applicationmanagement component 116 (AMC 116) that can at least partially controlapplication states and/or operations of applications 112 associated withUEs, such as UE 102, associated with the communication network 106. Theapplication management component 116 also can be associated with (e.g.,communicatively connected to) the one or more application agents 110 tofacilitate controlling the application states of one or moreapplications 112 associated with the one or more application agents 110.

An application agent 110 can identify a state of an application(s) 112and can communicate that application state to the application managementcomponent 116. The application states can include, for example, anactive state or a doze (e.g., inactive) state. The active state can be astate wherein the application 112 can be actively transmittinginformation to or receiving information from another communicationdevice (e.g., via the communication network 106). The doze state can bea state wherein the application 112 can be asleep, inactive, and/orotherwise not in active communication with another communication device(e.g., via the communication network 106). When an application 112 is in(e.g., is commanded to be in) an active state, the application 112 canfunction in a normal manner for that application 112. When anapplication 112 is in (e.g., is commanded to be in) a doze state, theapplication 112 can function as recommended or commanded by theapplication agent 110 and/or application management component 116, inaccordance with the defined application-control criterion(s), includingcriterion(s) relating to network access policies. In someimplementations, one or more other application states (e.g., anintermediate state(s) between the active state and doze state) can beused in addition to or as an alternative to the active state and/or dozestate. The application agent 110 also can communicate otherapplication-related information, such as, for example, an elasticitylevel of the application 112 (e.g., more elasticity can indicate a lesstime-critical application, less elasticity can indicate a moretime-critical application (e.g., a real-time application, such as VoIP,video streaming, or audio streaming), performance indicators (e.g., keyperformance indicators (KPIs)) associated with the application 112,and/or an application category associated with the application 112,etc., to the application management component 116 to facilitate managingapplication states of the application 112. In some implementations, thedisclosed subject matter, using an application agent(s) 110 and/orapplication management component 116, can enable elastic applications,which have more elasticity, to have a greater degree of flexibility inoperation as compared to non-elastic or less elastic applications.

The application agent 110 and/or the application management component116 can generate a mapping function mapping application states of anapplication 112 to various factors, such as radio states (e.g., wirelesscommunication access states, such as, for example, a fetch (FTCH) state,a dedicated channel (DCH) state, an idle state, etc.), networkcongestion level of the communication network 106, performanceindicators (e.g., KPIs) associated with the application 112, networkpolicies of the communication network 106, user policies of usersassociated with the UEs 102, etc., to facilitate determining whichapplication state to apply to the application 112 at a given time. TheKPIs can include indicators relating to, for example, VoIP, videostreaming, multimedia, electronic gaming, wireless communication factorsor parameters, near field communication (NFC) factors or parameters,security factors or parameters, bandwidth factors or parameters,location-related parameters, etc. For example, a KPI of an application112 can state that the application 112 desires (e.g., requires) at leasta certain communication speed (e.g., 200 kilobytes per second (kbps))when communicating with (e.g., downloading data via) the communicationnetwork 106; a KPI can specify that the application 112 has respective(e.g., different) characteristics and/or capabilities, based on the typeof communication network (e.g., 3G network, Wi-Fi network, etc.), andthese respective characteristics and/or capabilities are to be takeninto account by the communication network 106 and/or the applicationmanagement component 116 when servicing the application 112; or anotherKPI can be location related and can specify that certain characteristicsand/or capabilities of the application 112 pertain to a particular zone(e.g., geographical zone) and these certain characteristics and/orcapabilities are to be taken into account by the communication network106 and/or the application management component 116 when servicing theapplication 112 while in or associated with that particular zone.

The application agent 110 associated with an application 112 canmonitor, detect, and/or receive information relating to applicationconditions (e.g., application state) of the application 112, informationrelating to network conditions (e.g., indicator relating to networkcongestion level) from the application management component 116,network-related information from a lower network layer(s) (e.g.,network-related state or event information), and/or information that canbe obtained via use of an SDK(s) or API(s). At desired times (e.g.,periodically, or in response to detected or received information (e.g.,network condition-related indicator and/or application controlinformation from the application management component 116,network-related state or event detected in a lower network layer,etc.)), the application agent 110 can analyze the various factors,parameters, information (e.g., network state or event information fromlower network layers), etc., and, using (e.g., applying) the mappingfunction associated with the application 112, the application agent 110can identify an application state to apply to the application 112, basedat least in part on the analysis results and the mapping function.

For example, the application agent 110 can receive a networkcondition-related indicator (e.g., a network congestion indicator thatcan indicate the communication network 106 (e.g., wireless portion ofthe communication network 106) is not experiencing a high level ofnetwork congestion, a network congestion indicator that can indicate thecommunication network 106 has reached (e.g., breached) a certainthreshold level of network congestion (e.g., a defined high thresholdnetwork congestion level)), from the application management component116. In response to receiving that network condition-related indicator,the application agent 110 can analyze the network condition-relatedindicator and/or other information (e.g., various factors, parameters,etc.), and can apply the mapping function to that indicator and/or otherinformation to determine which application state (e.g., active state,doze state) the application 112 is to be set. In some implementations,the mapping function, and/or a set of defined rules that can constitutethe mapping function, can be stored (e.g., in the form of a ruleslook-up table) in a data store (not shown in FIG. 1; e.g., as shown inFIG. 4) associated with the application agent 110.

For instance, if the network congestion indicator indicates that thecommunication network 106 is not experiencing a high level of networkcongestion (e.g., network congestion is below a defined high thresholdnetwork congestion level), and the mapping function specifies that theapplication 112 can be set to the active state or can remain in the dozestate in response to such network congestion indicator, the applicationagent 110 can facilitate setting (e.g., transitioning) the application112 to the active state or the doze state (e.g., unless there are otherfactors contained in the mapping of the mapping function that woulddictate differently with regard to the application state). If thenetwork congestion indicator indicates that the communication network106 is experiencing a high level of network congestion (e.g., networkcongestion that is at or above a defined high threshold networkcongestion level), and the mapping function specifies that theapplication 112 is to be set to the doze state in response to suchnetwork congestion indicator, the application agent 110 can facilitatesetting (e.g., transitioning) the application 112 to the doze state(e.g., unless there are other factors contained in the mapping of themapping function that would dictate differently with regard to theapplication state, wherein the mapping function specifies that theapplication 112 be in the active state even if the network congestionindicator indicates a high level of network congestion due to otherfactors relating to the application 112). While in the doze state, theapplication 112 can operate in accordance with a desired (e.g., good)behavior in relation to the communication network 106 and/or can operateusing alternative measures, such as, for example, using a cache, anotheraccess selection, queue management, local storage, or other controlmeans available to the application 112 to facilitate performing at leastsome operations of the application 112.

In response to determining the application state to be employed for theapplication 112, the application agent 110 can generate controlinformation (e.g., control command) that can indicate the applicationstate to which the application 112 is to be set (e.g., transitioned, ormaintained). The application agent 110 can communicate the controlinformation to the application 112 to facilitate controlling theapplication state of the application 112. The application 112 canreceive the control information and can set (e.g., transition, maintain)the application 112 to the application state indicated by the controlinformation.

In some implementations, the application agent 110 and/or applicationmanagement component 116 can synchronize communications and/orapplication states of multiple applications 112 to facilitate efficientcommunication of traffic in the communication network 106, reducingsignaling relating to application state transitions and/or use ofcommunication channels, and/or otherwise reduce resources used by the UE102 and/or the communication network 106, as well as reduce powerconsumption by the UE 102 and/or the communication network 106. Forinstance, a first application (e.g., 112) can be transmitting contentvia a communication channel, and a second application (e.g., 112) can beready to transmit or preparing to transmit its content via thatcommunication channel. The application management component 116 and theapplication agent(s) 110 associated with the first application andsecond application can control the respective application states of thefirst application and second application, and the state of thecommunication channel to synchronize the respective application statesof the first application and second application so that the applicationstate of the first application remains in the active state and/or theapplication state of the second application transitions to the activestate so that the content of the second application can be communicatedvia the communication channel after the content of the first applicationis communicated via the communication channel without the communicationchannel transitioning to the idle state and then back to an active statebetween the communication of the content of the first application andthe communication of the content of the second application. This canreduce the signaling relating to transitioning of the communicationchannel between the idle state and active state and/or can reduce thesignaling between the second application and/or the associatedapplication agent 110 (and/or the first application and/or theassociated application agent 110) and the communication network 106(and/or the application management component 116) in relation tocommunicating content via the communication channel and/or establishingcommunication with the communication channel.

In some implementations, the UE 102 can function as a mobile hotspot(e.g., AP) to facilitate communication of traffic (e.g., voice or datatraffic) between an application(s) 112 and the communication network 106via the UE 102. One or more applications 112 can be wirelessly connectedto the UE 102, which can act as a mobile hotspot in relation to the oneor more applications 112. An application agent 110, associated with theone or more applications 112 connected to the UE 102, and/or theapplication management component 116 can control switching of therespective applications 112 between respective applications states,based at least in part on respective mapping functions of the respectiveapplications 112, the defined application-control criterion(s) (and/orcorresponding defined application-control rules), user policies in auser profile(s) associated with the UE 102 and/or the application(s)112, etc., as more fully disclosed herein.

The mapping function associated with an application 112 can be based inpart on (e.g., at least initially) default control settings (e.g.,device-level default control settings), wherein the application 112 canuse device-level capabilities to enhance (e.g., improve, optimize,maximize) the experience of the user. In certain implementations, a userof an application 112 and/or the UE 102 can select or implement one ormore user policies that can be included or incorporated in to themapping function associated with the application 112 to facilitatecontrolling the application state of the application 112 based at leastin part on the one or more user policies (e.g., as desired by the user).For instance, the application agent 110 associated with the application112 can offer a menu of application-related policies to the user via theUE 102 (or other communication device), and the user can select one ormore of those application-related policies from the menu, and thosepolicies can be stored as user policies for the application 112 in auser profile associated with the user, wherein the user profile can bestored in a data store(s) associated with the application agent 110and/or the application management component 116. Some exampleapplication-related (user selected) policies can include or relate tocontrolling when the application 112 is in the active state or dozestate, controlling the minimum communication rate (e.g., kbps) forcommunications associated with the application 112, controllinglocation-related parameters relating to the application 112, controllingsecurity parameters relating to the application 112, etc.

In some implementations, an application 112 that meets a definedcertification criterion(s) can be certified by the communication network106 (e.g., the application management component 116 of the communicationnetwork 106). An application 112 (e.g., qualified or intelligentapplication) that meets the defined certification criterion(s) can beautomatically certified as a qualified (e.g., intelligent) applicationby the communication network 106. The defined certification criterion(s)can relate to or be part of defined application-control criterion(s).The defined certification criterion(s) can include, for example, thatthe application 112 will transition between application states inresponse to control information from the application managementcomponent 116 and/or application agent 110; the application 112 willcomply with applicable rules, SDKs, and/or APIs; the application 112(and/or associated application agent 110) will provide informationregarding the application's current application state (e.g., uponrequest, periodically, in response to a triggering event, etc.); and/orthe application 112 (and/or associated application agent 110) willprovide desired information to the application agent 110 and/orapplication management component 116 to enable the application agent 110and/or the application management component 116 to generate a mappingfunction comprising a mapping between the application states and thevarious factors. An SDK or API can be used to facilitate registering orcertifying an application 112 with the application management component116, exchanging of information (e.g., application states, KPIs, etc.)between the communication network 106 and the application agent 110,etc., to facilitate enabling the application agent 110 and applicationmanagement component 116 to manage operation and/or application statesof the application 112.

FIG. 2 depicts a block diagram of an example system 200 that can use anapplication agent to facilitate controlling application states of anapplication(s) associated with UE in accordance with various aspects andembodiments. The system 200 can include an application agent 202 thatcan be associated with one or more applications (not shown in FIG. 2;e.g., as shown in FIG. 1) and can control application states of the oneor more applications, in accordance with defined application-controlcriteria, as more fully disclosed herein.

The application agent 202 can be associated with (e.g., communicativelyconnected to) a data store 204 that can store data relating tooperations of the application agent 202, applications associated withthe application agent 202, mapping functions associated with theapplications, etc. The data store 204 can store one or more rules,wherein respective rules can be associated with respective mappingfunctions of respective applications to facilitate controllingapplication states and/or other operations of the applications inaccordance with the respective rules.

The application agent 202 can receive information to facilitatedetermining which state an application is to be in at a given time andcontrolling the application state of that application. For instance, theapplication agent 202 can receive information, including access statesassociated with a communication network(s) (not shown in FIG. 2; e.g.,as shown in FIG. 1), application flow state APIs, and/or otherinformation from other sources. The application agent 202 can analyzethe access states, application flow state APIs, and/or other informationto facilitate generating a mapping function comprising a mapping ofapplication states to access states (e.g., radio states associated withapplications and/or associated communication devices), congestionsnotifications, and/or other network congestion policies, etc. Theapplication agent 202 can use the mapping function to facilitatedetermining which state an application is to be in at a given time andcontrolling the application state of that application. In someimplementations, the application agent 202 also can map hypertext markuplanguage (HTML)-related protocols or parameters (e.g., protocols orparameters relating to HTML5, HTML 4.01, eXtensible HTML (XHTML) 1.1,etc.) to bearer functions and application states in relation to anapplication.

The application agent 202 can apply a mapping function associated withthe application, wherein the mapping function can be stored in the datastore 204 and can include one or more rules, and can control theapplication state and/or other operations of the application based atleast in part on the mapping function and the analysis results relatingto the received information. The application agent 202 can generatecontrol information, including a state change notification, and cancommunicate such control information to an application to facilitatechanging an application state of the application in according with themapping function of the application. The application can receive suchcontrol information and can set (e.g., adjust, transition, etc.) itsapplication state in response to the received control information.

The application agent 202 also can receive over-the-air rules updates,for example, from the communication network, and can store the updatedrules in the data store 204. For example, the application agent 202 canupdate a mapping function of an application based at least in part onthe updated rules, and can store the updated mapping function in thedata store 204, wherein the updated mapping function can be used by theapplication agent 202 to facilitate determining which state theapplication is to be in at a given time and controlling the applicationstate of that application.

The application agent 202 also can communicate device or applicationflows characterizations to, for example, the communication network(e.g., an application management component associated with thecommunication network) to facilitate enabling the communication networkto have information regarding the application, including characteristicsand/or capabilities of the application and/or information relating toinformation flow associated with the application and/or associated UE.The communication network (e.g., associated application managementcomponent) can use the device or application flow characterizations tofacilitate making determinations regarding an application state anapplication is to be in at a given time, synchronizing communicationsand/or application states of applications, determining and/orcommunicating network congestion notifications, etc.

Referring to FIG. 3 (along with FIGS. 1 and 2), FIG. 3 illustrates adiagram of an example application control framework 300 that can beemployed to control application states of applications associated with acommunication network in accordance with various aspects and embodimentsdescribed herein. The application control framework 300 can include acommunication network 302 (comm. NW 302) that can enable communicationof information (e.g., voice or data information) between communicationdevices 304 (comm. devices 304) (e.g., UEs, computers, servers,electronic pads or tablets, etc.) that can be distributed across acommunication network environment as part of the application controlframework 300.

The application control framework 300 also can include one or morecongestion mechanisms 306 that can be used to monitor, detect, and/orcontrol network congestion associated with the communication network302. The congestion mechanisms 306 can be associated with or includedin, for example, an application agent (e.g., 110), a communicationdevice (e.g., UE 102, communication device 108, cloud 114), orapplication management component (e.g., 116). The communication devices304 and the congestion mechanisms 306 respectively can include and usean interface that can enable the communication devices 304 to access,manage, and/or use the congestion mechanisms 306, and/or the interfacecan be used to communicate information between a communication device304 and a congestion mechanism 306. In some implementations, theinterface(s) associated with the communication devices 304 andcongestion mechanisms 306 can be operating system (OS) specific.

The application control framework 300 can include radio resourcecongestion probes 308 that can be used to monitor, detect, and/ormeasure communication conditions (e.g., network congestion,communication channel conditions, signal strength, etc.) associated withthe communication network 302. The radio resource congestion probes 308can be associated with, for example, an application agent or applicationmanagement component. A radio resource congestion probe 308 can includean interface that can enable the radio resource congestion probe 308 tointerface and communicate with the congestion mechanisms 306 and thecommunication network 302, wherein the congestion mechanisms 306 and thecommunication network 302 each can have an interface that can enable thecongestion mechanisms 306 and the communication network 302 to interfaceand communicate with radio resource congestion probes 308.

The radio resource congestion probes 308 also can interface with orotherwise be associated with application states 310 (e.g., active state,doze state, etc.) associated with an application(s) and one or moreapplication APIs 312 that can be part of the application controlframework 300. The congestion mechanisms 306 also can be interfaced withthe one or more application APIs 312 associated with the applications tofacilitate enabling an application agent to obtain informationassociated with the communication network 302 and operate pursuant tocommunication network standards (e.g., network policies applicable to anapplication certified as a qualified application). The application APIs312 can define the expected behavior of application states ofapplications. In some implementations, at least some of the applicationAPIs 312 can be defined and standardized among application developers tofacilitate efficient use of application APIs 312 in the communicationnetwork environment. The application agent and/or associated applicationcan use the application APIs 312, as disclosed herein.

The application control framework 300 can employ application performanceindicators 314 (e.g., KPIs or key performance requirements) respectivelyassociated with applications, and the congestion mechanisms 306 can beassociated with or interface with the application performance indicators314. The application performance indicators 314 can provide informationregarding the level of elasticity of an application, an applicationcategory or type for an application, and/or other information relatingto the performance or functions of the application, the level or type ofservice the application desires from the communication network 302, etc.The application agent and/or associated application can provide theapplication performance indicators 314 to the communication network 302(and/or associated application management component) to facilitateenabling the communication network to identify the applicationperformance indicators 314 of the application and/or to facilitateregistering or certifying the application (e.g., enabling theapplication to self-certify) with the communication network 302.

The application control framework 300 can further include a mapping ofwireless states 316 that can be a mapping function that contains amapping of the wireless (e.g., radio) states to the application states310 of the applications and/or other factors, such as all or a portionof the application performance indicators 314, network indicators,network policies, network conditions, application conditions,application behavior, etc. The application agent and/or communicationnetwork 302 can generate, access, and/or utilize the mapping function tofacilitate managing setting an application to a desired applicationstate, as disclosed herein.

The application control framework 300 also can include one or more SDKs318, which can be associated with or interfaced with the one or moreapplication APIs 312, and can be used by an application agent and/orassociated application to facilitate enabling the application and/orassociated application to control transitioning of the applicationbetween application states, and/or having the application agent and/orapplication operate in accordance with communication network standardsapplicable to qualified applications.

In some implementations, the application control framework 300 cancomprise one or more server controls 320 associated with one or moreservers associated with the communication network 302. The one or moreserver controls 320 can be interfaced with the one or more SDKs 318 tofacilitate exchanging information to facilitate operation of the one ormore SDKs 318. The interface associated with the one or more servercontrols 320 can be OS specific in certain implementations.

The application control framework 300 also can provide service and/ornetwork feedback 322 to the one or more SDKs 318 via an interface. Theservice and/or network feedback 322 can be associated with, generatedby, and/or received from one or more network APIs 324 used by, forexample, an application agent or application management component toprovide information relating to the application to the communicationnetwork 302. In some implementations, the interfaces associated with theservice and/or network feedback 322 and/or the one or more SDKs 318 canbe OS specific.

The one or more network APIs 324 can interface with the communicationnetwork 302 to facilitate exchanging information with the communicationnetwork 302 to facilitate controlling the application state of anapplication. The one or more SDKs 318 also can be interfaced with theone or more network APIs 324 to exchange information associated with anapplication. The one or more network APIs 324 also can facilitateidentifying and/or providing information relating to the applicationperformance indicators 314 to the communication network 302. Inaccordance with various implementations, certain of the interfacesassociated with the network APIs 324 can be OS specific.

In some implementations, the application control framework 300 canutilize cross layer optimization 326 to facilitate communicating (e.g.,dynamically) feedback relating to the communication network 302 betweendifferent network layers. The communication network 302, applicationmanagement component (e.g., 116), application agent (e.g., 110), and/orapplication (e.g., 112) can include components, mechanisms, and/orinterfaces that can facilitate implementing the cross layer optimization326.

The application control framework 300 can include an application controlmodel 328 that can be employed by an application agent, application,and/or application management component to facilitate controllingoperation of the application to transition the application betweenapplication states. The application control model 328 can comprisecomponents, mechanisms, and/or interfaces that can obtain and/or process(e.g., analyze) the information associated with the cross layeroptimization 326 to facilitate controlling operation of the applicationto transition the application between application states. In certainimplementations, the application control model 328 can be associatedwith and/or can interface with the one or more application APIs 312 toexchange information (e.g., information obtained or generated by anapplication API 312, information obtained or generated by theapplication control model 328) to facilitate controlling operations ofthe application agent, associated application, and/or the applicationmanagement component.

The application control framework 300, application agent, and/orapplication management component can leverage transitions in wirelessstates associated with the communication network 302 and/orcommunication devices 304 to facilitate controlling operation of theapplication to transition the application between application states(e.g., in accordance with an associated mapping function). Theapplication control framework 300 also can leverage existing (e.g.,legacy) wireless states mechanisms to facilitate controlling operationof applications (e.g., application state transitions). The applicationcontrol framework 300 can thereby provide for radio-level control ofapplications associated with the communication network 302.

In accordance with various implementations, the systems, applicationcontrol framework, methods, and techniques disclosed herein can beimplemented without requiring a change to existing access technologypractices. The disclosed subject matter, in part by employingapplication agents (e.g., 110) and an application management component(e.g., 116), can indirectly consider wireless-state-changes overheadwhen making transition changes, and/or making determinations regardingtransition changes, between application states (e.g., active, doze,etc.) for respective applications (e.g., intelligent or qualifiedapplications) operating in the communication network environment, asmore fully described herein. The disclosed subject matter also canenable the applications agents and/or an associated application(s) to atleast be indirectly cognizant of the radio or wireless states (e.g.,radio resource control (RRC) states) and can map the application statesof respective applications to the wireless states associated withapplications to facilitate controlling transitions of application statesof applications based at least in part on the wireless states. Thedisclosed subject matter, employing the application agents andapplication management component, can utilize a non-control channel as amechanism to present or indicate aggregated network desired behavior inrelation to respective applications to facilitate enabling theapplication agents and application management component to controloperations, including application state transitions, of the respectiveapplications.

In some implementations, an application agent(s) (e.g., 110) associatedwith an application (e.g., 112), and/or the application, can accessand/or communicate (e.g., directly) with (e.g., signal with) lowernetwork layers (e.g., media access control MAC) layer, physical (PHY)layer, etc.), and/or can facilitate signaling between applications andthe lower network layers, to facilitate controlling operations,including application state transitions, of an application in responseto network conditions (e.g., network congestion levels, etc.), as morefully disclosed herein. The application management component (e.g., 116)can at least partially control application operations and behavior bygenerating and/or using a mapping of multi-dimensional network factors(e.g., network conditions, network policies, network anomalies, etc.) tothe multiple application states (e.g., active, doze, etc.) of theapplications. Intelligent or qualified applications, which can becertified with the communication network, can facilitate enabling theapplication management component and other components associated withthe communication network to apply cross layer optimization proceduresto coordinate preventative measures and desirably (e.g., optimally,acceptably, etc.) manage user experience and network resources, as morefully disclosed herein.

When a flow is mapped to active state, the application agent and/orassociated application can determine that the communication network canmeet the demands on the network by the application. When a flow ismapped to doze state and/or the application is commanded to be in thedoze state, the application can operate, and/or the application cancontrol the application to operate, using desirable (e.g., good)application behavior and can utilize alternative features, such asutilizing a cache, making another access selection, utilizing queuemanagement and local storage, and/or other control means available tothe application, to facilitate reducing the application's demand on thecommunication network. For example, when the application managementcomponent sets a network congestion indicator bit to indicate there is ahigh level of network congestion, the application agent associated withthe application can transition the application from active state to dozestate, and the application or associated application agent can controlapplication operations to use good application behavior and/or thealternative features to reduce or minimize requests to the communicationnetwork and/or packet transmissions over the wireless communicationchannel.

An application (e.g., 112), such as an intelligent or qualifiedapplication, exercising good behavior can apply various operationalparameter thresholds and use the alternative measures to stay in thedoze state as much and/or as long as possible to reduce or minimize theapplication's demand on the communication network. Certain applications,depending in part on their category, can generally remain in a dozestate and typically can enter (e.g., can only enter) the active state inresponse to the associated application agent identifying the wirelessstate associated with the application or associated communication devicebeing in an active state.

In some implementations, the disclosed subject matter, employing theapplication agents and application management component, can create avirtual fence for respective specific behaviors of applications based atleast in part on user policies, network policies, and/or contentpolicies relating to application or communication device location, rateof speed of an application or a communication device associated with auser, direction of travel of an application or a communication deviceassociated with a user, usage models, and/or other factors, inaccordance with defined application-control criterion(s). Theapplication agents and application management component of the disclosedsubject matter also can establish a closed feedback loop with theapplications and can use the closed feedback loop to facilitateperforming efficient global state updates to and/or transitions ofapplication states of applications in relation to (e.g., responsive to)radio states associated with applications or communication devicesand/or application states of other applications, and can be adaptive tovarious (e.g., different) environmental conditions relating to thecommunication network environment and applications associated therewith.This can function in a manner analogous to traffic stop lights that canbe adaptive to a variety of different environmental conditions. Thedisclosed subject matter, using the application agents and applicationmanagement component, can function, for example, as a preprocessor infront of applications in relation to communication of traffic associatedwith applications (e.g., a stop-and-go mechanism in relation tocommunication of traffic associated with applications), as more fullydescribed herein.

The disclosed subject matter can provide for significant flexibility forthe communication network to better differentiate between the trafficflows based at least in part on multi-dimensional application-controlcriteria. For example, the application management component and/orapplication agents associated with application can utilize analyticsrelating to the communication networks and applications to controlscheduling of traffic flows of applications to enforce relative fairnessamong application traffic flows, which can enhance user experiences inrelation to the applications, as compared to conventional schemes. Thedisclosed subject matter, using the application management component andapplication agents, can provide direct network control over theapplications more efficiently during periods of high or undesirable(e.g., unacceptable) network congestion (e.g., network congestion thatexceeds a defined high threshold network congestion level) or emergencyresponse situations associated with the communication network. Also, thedisclosed subject matter, using the application management component andapplication agents, can control respective application states ofapplications in relation to wireless access states and applicationtraffic flows respectively associated with the applications and/orassociated communication devices to enable the application states (andassociated application traffic flows) and wireless access states to bein direct synchronization, or at least substantially in directsynchronization, with each other to enhance (e.g., maximize, optimize,etc.) the utilization of radio resources by the communication networkand associated devices and components.

The disclosed subject matter, in part by employing the applicationagents, application management component, defined application-controlcriterion(s), defined certification criterion(s), etc., as describedherein, can provide a number of other advantages over conventionalsystems, methods, and techniques. For instance, the disclosed subjectmatter can provide improved control over applications to reduce taxingof the communication network by applications, particularly applicationsthat are prone to chattiness (e.g., communicating a significant amountof data or signaling), as compared to conventional systems, methods, ortechniques. The disclosed subject matter can automatically lower anapplication(s)′ “total demand” on the communication network and canenforce fairness among respective applications and among respectivecommunication devices, as compared to conventional systems, methods, ortechniques.

Also, constant traffic monitoring can undesirably tax communicationdevices in terms of configuration, enabling, disabling, reporting, etc.The disclosed subject matter can reduce or minimize traffic monitoring(e.g., constant traffic monitoring) at the communication device or thecommunication network, while also being able to desirably (e.g., atleast acceptably) control operations, including transitions betweenoperation states, of applications associated with the communicationnetwork. The disclosed subject matter, via its reduction and/orminimization of traffic monitoring and controlling transitioning ofapplications between multiple application states, can achieve betterperformance results than conventional systems, methods, or techniques.Further, the disclosed subject matter, by using the application agentsand application management component that can automatically controltransitions of application states of applications, can provide improvednetwork and application performance by operating preventively to bettercontrol or reduce network congestion before the network congestionbecomes unduly problematic, as compared to conventional schemes that usea reactive approach to deal with network congestion.

FIG. 4 depicts a block diagram of an example application agent 400 inaccordance with various aspects and embodiments of the disclosed subjectmatter. The application agent 400 can include a communicator component402 that can be used to communicate (e.g., transmit, receive)information between the application agent 400 and other components(e.g., an application management component, an application(s), etc.).The information can include or relate to, for example, congestionnotification indicators from the communication network, detectedwireless (e.g., radio) communication conditions associated with a UEassociated with the application agent 400 or application being used bythe UE, detected radio resources associated with the communicationnetwork or UE, an application state of an application, mapping functionassociated with an application, information relating to a mappingfunction, information relating to applications (e.g., categorization orcharacteristics, such as type of application, bandwidth specifications,QoS specifications, or other performance indicators, etc., associatedwith an application), etc. The application agent 400 can use receivedinformation, for example, to facilitate determining what applicationstate an application is to be set to at a given time, determining acurrent network congestion level or status of the communication network,generating control information to set (e.g., transition, modify) anapplication state of an application(s), determining a current state ofan application(s), generating a mapping function and associated mappingassociated with an application, etc.

The application agent 400 also can contain an aggregator component 404that can aggregate data received (e.g., obtained) from various entities(e.g., application, application management component, communicationnetwork, UE, processor, data store, etc.). The aggregator component 404can correlate respective items of data based at least in part on type ofdata (e.g., content, network congestion indicator, metadata, etc.),application to which the data relates, source of the data, time or datethe data was generated or received, etc., to facilitate analyzing of thedata by the analyzer component 406. For example, the aggregatorcomponent 404 can aggregate data relating to an application and/or otherdata (e.g., data relating to the communication network) to facilitategenerating a mapping function comprising a mapping between applicationstates and wireless states and/or other factors or parameters.

The application agent 400 can comprise an analyzer component 406 thatcan analyze data to facilitate determining what application state anapplication is to be set to at a given time, determining a currentnetwork congestion level or status of the communication network,generating control information to set an application state of anapplication(s), determining a current state of an application(s),generating a mapping function and associated mapping associated with anapplication, etc., and can generate analysis results, based at least inpart on the data analysis. For example, the analyzer component 406 cananalyze information relating to network congestion (e.g. networkcongestion indicator) of the communication network, a currentapplication state of an application, and/or a mapping functionassociated with the application to determine whether the application isto be transitioned from a current application state to anotherapplication state.

The application agent 400 can include a selector component 408 that canselect items of data (e.g., data relating to an application, datarelating to the communication network, etc.), an applicable algorithm(e.g., a mapping algorithm, a state-transition algorithm, etc.),application-related parameter values, or other information, tofacilitate performing one or more functions relating to controllingapplication states of applications associated with the application agent400. For example, the selector component 408 can select a mappingfunction relating to the application, information relating to networkcongestion level, information indicating a current application state ofthe application, and/or other information, to facilitate determining anapplication state to which the application is to be set and/or whetherthe application state of the application is to be changed.

The application agent 400 also can comprise a state component 410 thatcan identify available application states of an application, identify acurrent application state of an application, and facilitatetransitioning the application between application states. Theapplication agent 400 can include a notification component 412 that canobtain (e.g., receive, detect, etc.) information relating to networkcongestion of the communication network and can identify a networkcongestion level or status based at least in part on such information.

The application agent 400 can contain an update component 414 that canreceive updates relating to rules (e.g., application-control rules),mapping functions of applications, communication network conditions, UEcommunication conditions, etc. The update component 414 can facilitateupdating information (e.g., rules, mapping functions, etc.), such asinformation stored in a data store 428, based at least in part on thereceived updates.

The application agent 400 can comprise an application controllercomponent 416 that can control and/or schedule transitions betweenapplication states, or maintain an application state, for an applicationbased at least in part on a mapping function (and associatedapplication-control rules) associated with the application andinformation relating to network conditions (e.g., network congestionlevel or status). The application controller component 416 can operatein conjunction with the analyzer component 406 and/or other componentsof the application agent 400 (e.g., mapper component 418, resource probecomponent 420, SDK/API component 422, processor component 426, etc.) tofacilitate determining an application state to which an application isto be set at a given time.

The application agent 400 can include a mapper component 418 that cangenerate or receive a mapping function that can be used in relation toan application to facilitate controlling switching of the applicationbetween available application states. In some implementations, themapper component 418 can obtain information relating to availableapplications states of an application, performance indicators associatedwith the application, categorization or characteristics associated withthe application, wireless states of the communication network, networkpolicies, and/or user policies, etc., and can generate a mappingfunction associated with the application based at least in part on suchinformation.

The application agent 400 also can contain a resource probe component420 that can comprise one or more probes (e.g., radio resource probes)or sensors that can sense or detect communication conditions (e.g.,network congestion level, traffic flow rates, etc.) relating to thecommunication network, a UE and/or a server associated with anapplication, etc. For example, the resource probe component 420 can usethe one or more probes or sensors to detect or obtain information, whichcan relate to communication conditions associated with the communicationnetwork, and can be contained in lower network layers associated withtraffic in the communication network. The application agent 400 can usesuch information relating to communication conditions associated withthe communication network to facilitate making a determination regardingan application state an associated application(s) is to be set to (e.g.,transitioned to) at a given time, based at least in part on the mappingfunction(s) associated with the application(s).

The application agent 400 can include an SDK/API component 422 that canuse one or more SDKs or APIs that can facilitate enabling theapplication agent 400 to obtain information relating to communicationnetwork conditions, identify information in the lower layers of thetraffic flow, etc. The application agent 400 can utilize the one or moreSDKs or APIs in a manner that comports with the specifications set bythe application management component and/or communication network tofacilitate desired control of application states of applications by theapplication agent 400 and/or to enable the applications to be certified(e.g., self-certified) by the application management component and/orcommunication network.

The application agent 400 also can contain a certification component 424that can facilitate certifying or registering a qualified application(e.g., as an intelligent or qualified application) with the applicationmanagement component and/or communication network. An application can bea qualified application, for example, if the application is able totransition between different application states (e.g., active state,doze state, etc.), is configured to (or is associated with anapplication agent 400 configured to) comport with network specificationsregarding application state transitions in relation to wireless statetransitions, is configured to (or is associated with an applicationagent 400 configured to) use SDKs and/or APIs specified by theapplication management component and/or communication network, and/orother qualifications as specified by the application managementcomponent and/or communication network.

The application agent 400 can comprise a processor component 426 thatcan work in conjunction with the other components (e.g., communicatorcomponent 402, aggregator component 404, analyzer component 406, etc.)to facilitate performing the various functions of the application agent400. The processor component 426 can employ one or more processors,microprocessors, or controllers that can process data, such asinformation relating to applications, communication network conditions,UE communication conditions, and/or other information, etc., tofacilitate operation of the application agent 400, as more fullydisclosed herein, and control data flow between the application agent400 and other components (e.g., communication network, base station, aserver or other communication device, a cloud, etc.) associated with theapplication agent 400.

The application agent 400 also can include a data store 428 that canstore data structures (e.g., user data, metadata), code structure(s)(e.g., modules, objects, hashes, classes, procedures) or instructions,information relating to applications, mapping functions, SDKs, APIs,communication network conditions, defined application-control criteria(and corresponding defined application-control rules), etc., tofacilitate controlling operations associated with the application agent400. In an aspect, the processor component 426 can be functionallycoupled (e.g., through a memory bus) to the data store 428 in order tostore and retrieve information desired to operate and/or conferfunctionality, at least in part, to communicator component 402,aggregator component 404, analyzer component 406, etc., and/orsubstantially any other operational aspects of the application agent400.

FIG. 5 presents a block diagram of an example application managementcomponent 500 in accordance with various aspects and embodiments of thedisclosed subject matter. The application management component 500 caninclude a communicator component 502 that can be used to communicate(e.g., transmit, receive) information between the application managementcomponent 500 and other components (e.g., an application agent, anapplication(s), a UE or other communication device, a cloud, etc.). Theinformation can include or relate to, for example, congestionnotification indicators relating to network congestion associated withthe communication network, a mapping function associated with anapplication (e.g., when the application management component 500generates the mapping function and transmits it to the application agentassociated with the application), information relating to a mappingfunction, information relating to applications (e.g., categorization orcharacteristics, such as type of application, available applicationstates, bandwidth specifications, QoS specifications, or otherperformance indicators, etc., associated with an application), etc. Theapplication management component 500 can use such information or aportion thereof, for example, to facilitate determining a currentnetwork congestion level or status of the communication network,generating control or notification information to communicate to anapplication agent, and/or generating a mapping function and associatedmapping associated with an application, etc.

The application management component 500 also can contain an aggregatorcomponent 504 that can aggregate data received (e.g., obtained) fromvarious entities (e.g., application, application agent, communicationnetwork, UE, processor, data store, etc.). The aggregator component 504can correlate respective items of data based at least in part on type ofdata (e.g., content, metadata, etc.), application to which the datarelates, source of the data, time or date the data was generated orreceived, etc., to facilitate analyzing of the data by an analyzercomponent 506. For example, the aggregator component 504 can aggregatedata relating to the communication network to facilitate identifying anetwork congestion level and generating a network congestion indicatorbased at least in part on the identified network congestion level. Asanother example, the aggregator component 504 can aggregate datarelating to an application and/or other data (e.g., data relating to thecommunication network) to facilitate generating a mapping functioncomprising a mapping between application states and wireless statesand/or other factors or parameters.

The application management component 500 can comprise the analyzercomponent 506 which can analyze data to facilitate determining a currentnetwork congestion level or status of the communication network,generating control information and/or a network congestion indicator tofacilitate setting or transitioning an application state of anapplication(s), and/or generating a mapping function and associatedmapping relating to an application, etc., and can generate analysisresults, based at least in part on the data analysis. For example, theanalyzer component 506 can analyze information relating to networkcommunication conditions to facilitate identifying a network congestionlevel or state of the communication network.

The application management component 500 can include a selectorcomponent 508 that can select items of data (e.g., data relating to thecommunication network, data relating to an application, etc.), anapplicable algorithm (e g, a mapping algorithm, a state-transitionalgorithm, etc.), parameter values, or other information, to facilitateperforming one or more functions relating to controlling applicationstates of applications associated with the application managementcomponent 500. For example, the selector component 508 can select amapping function relating to the application, information relating tonetwork congestion level, information indicating a current applicationstate of the application, and/or other information, to facilitatedetermining an application state to which the application is to be setand/or whether the application state of the application is to bechanged.

In some implementations, the application management component 500 caninclude a mapper component 510 that can generate or receive a mappingfunction that can be used in relation to an application to facilitatecontrolling switching of the application between available applicationstates. In some implementations, the mapper component 510 can obtaininformation relating to available applications states of an application,performance indicators associated with the application, categorizationor characteristics associated with the application, wireless states ofthe communication network, network policies, and/or user policies, etc.,and can generate a mapping function associated with the applicationbased at least in part on such information. In accordance with variousembodiments, the application management component 500 and/or theapplication agent can generate a mapping function for an application.When the application management component 500 generates a mappingfunction, the communicator component 502 can communicate the mappingfunction to the application agent associated with the application.

The application management component 500 can comprise an applicationcontroller component 512 that can facilitate controlling and/orscheduling transitions between application states, or maintain anapplication state, for an application based at least in part oninformation relating to network conditions (e.g., network congestionlevel or status). The application controller component 512 can identifyor determine, or can receive information indicating, a networkcongestion level or status of the communication network, and cangenerate a network congestion indicator and/or other controlinformation, based at least in part on the network congestion level orstatus. The communicator component 502 can transmit the networkcongestion indicator and/or other control information to the applicationagent(s) associated with the application(s) to facilitate controllingthe application state(s) of the application(s).

The application management component 500 can contain a certificationcomponent 514 that can certify and/or register an application as aqualified application, for example, when such application meets one ormore applicable criterion (e.g., defined certification criterion(s)and/or defined application-control criterion(s)) for qualifying theapplication to be certified (e.g., as an intelligent application). Anapplication can be a qualified application, for example, if theapplication is able to transition between different application states(e.g., active state, doze state, etc.), is configured to (or isassociated with an application agent configured to) comport with networkspecifications regarding application state transitions in relation towireless state transitions, is configured to (or is associated with anapplication agent configured to) use SDKs and/or APIs specified by theapplication management component 500 and/or communication network,and/or other qualifications as specified by the application managementcomponent 500 and/or communication network.

In some implementations, the application management component 500 caninclude a resource probe component 516 that can provide one or moreresource probes, such as radio resource probes, or sensors to anapplication agent or application. An application agent associated withan application can use the one or more resource probes or sensors tomonitor communication conditions associated with the communicationnetwork, a UE or server associated with an application, etc., as morefully disclosed herein.

In certain implementations, the application management component 500 cancontain an SDK/API component 518 that can provide one or more SDKs orAPIs to an application agent or application in relation to managingtransitioning applications between application states. The one or moreSDKs or APIs can facilitate enabling the application agent to obtaininformation relating to communication network conditions, identifyinformation in the lower layers of the traffic flow, coordinating orcontrolling operation of the application in accordance withcommunication network standards relating to qualified (e.g.,intelligent) applications (e.g., communication network policiesapplicable to an application certified as a qualified application),etc., as described herein. In some implementations, the SDK/APIcomponent 518 also can make APIs and/or SDKs available to applicationdevelopers to enable application developers to be aware of theunderlined network states.

In another aspect, the application management component 500 can comprisea processor component 520 that can work in conjunction with the othercomponents (e.g., communicator component 502, aggregator component 504,analyzer component 506, etc.) to facilitate performing the variousfunctions of the application management component 500. The processorcomponent 520 can employ one or more processors, microprocessors, orcontrollers that can process data, such as information relating toapplications, the communication network, and/or other information, etc.,to facilitate operation of the application management component 500, asmore fully disclosed herein, and control data flow between theapplication management component 500 and other components (e.g.,application agent, application, communication network, base station,server, UE, etc.) associated with the application management component500.

The application management component 500 also can include a data store522 that can store data structures (e.g., user data, metadata), codestructure(s) (e.g., modules, objects, hashes, classes, procedures) orinstructions, information relating to applications, the communicationnetwork, defined application-control criteria (and corresponding definedapplication-control rules), defined certification criteria, SDKs, APIs,etc., to facilitate controlling operations associated with theapplication management component 500 and/or controlling applicationstates or operation of applications associated with the communicationnetwork. The processor component 520 can be functionally coupled (e.g.,through a memory bus) to the data store 522 in order to store andretrieve information desired to operate and/or confer functionality, atleast in part, to the communicator component 502, aggregator component504, analyzer component 506, etc., and/or substantially any otheroperational aspects of the application management component 500.

FIG. 6 depicts a block diagram of an example UE 600 in accordance withan aspect of the disclosed subject matter. In an aspect, the UE 600 canbe a multimode access terminal, wherein a set of antennas 669 ₁-669 _(Q)(Q is a positive integer) can receive and transmit signal(s) from and towireless devices like access points, access terminals, wireless portsand routers, and so forth, which operate in a radio access network. Itshould be appreciated that antennas 669 ₁-669 _(Q) can be part of thecommunication platform 602, which can comprise electronic components andassociated circuitry that can provide for processing and manipulation ofreceived signal(s) and signal(s) to be transmitted, e.g., by receiversand transmitters 604, multiplexer/demultiplexer (mux/demux) component606, and modulation/demodulation (mod/demod) component 608.

In another aspect, the UE 600 can include a multimode operationchipset(s) 610 that can allow the UE 600 to operate in multiplecommunication modes in accordance with disparate technical specificationfor wireless technologies. In an aspect, multimode operation chipset(s)610 can utilize communication platform 602 in accordance with a specificmode of operation (e.g., voice, GPS). In another aspect, multimodeoperation chipset(s) 610 can be scheduled to operate concurrently (e.g.,when Q>1) in various modes or within a multitask paradigm.

In some implementations, the UE 600 can comprise (e.g., optionally) oneor more applications 612 that can include or provide respectiveapplication functions based at least in part on the type of application.In accordance with various implementations, all or a portion of anapplication or that application's functionality can reside on the UE 600and/or all or a portion of that application or its functionality canreside on another device (e.g., another communication device, acommunication device located in or associated with a cloud, etc.)associated with the communication network.

In certain implementations, the UE 600 can contain (e.g., optionally) anapplication agent 614 that can perform various functions and operationsto facilitate controlling switching of application states based at leastin part on a mapping function associated with an application andinformation relating to communication conditions associated with thecommunication network and/or UE associated with the application, as morefully disclosed herein. In accordance with various implementations, anapplication agent can reside on the UE 600 and/or in another location(e.g., in the cloud, in the communication network, in a base station,etc.), based at least in part on the type of application, type of UE,number of potential concurrent users of an application, etc.

In still another aspect, the UE 600 also can include a processor(s) 616that can be configured to confer functionality, at least in part, tosubstantially any electronic component within the UE 600, in accordancewith aspects of the disclosed subject matter. For example, theprocessor(s) 616 can facilitate enabling the UE 600 to process data(e.g., symbols, bits, or chips) for multiplexing/demultiplexing,modulation/demodulation, such as implementing direct and inverse fastFourier transforms, selection of modulation rates, selection of datapacket formats, inter-packet times, etc. As another example, theprocessor(s) 616 can facilitate enabling the UE 600 to process datarelating to messaging, voice calls, or other services (e.g., Internetservices or access, services related to applications, etc.).

The UE 600 also can contain a data store 618 that can store datastructures (e.g., user data, metadata); code structure(s) (e.g.,modules, objects, classes, procedures) or instructions; message hashes;information relating to applications or application agents, thecommunication network, or other aspects associated with the UE 600; userpolicies; network or device information like policies andspecifications; attachment protocols; code sequences for scrambling,spreading and pilot (e.g., reference signal(s)) transmission; frequencyoffsets; cell IDs; encoding algorithms; compression algorithms; decodingalgorithms; decompression algorithms; and so on. In an aspect, theprocessor(s) 616 can be functionally coupled (e.g., through a memorybus) to the data store 618 in order to store and retrieve information(e.g., mapping functions; application-related information;network-related information (e.g., network congestion indicator orstatus, information relating to communication conditions of thecommunication network, etc.); frequency offsets; desired algorithms;etc.) desired to operate and/or confer functionality, at least in part,to communication platform 602, multimode operation chipset(s) 610,application(s) 612, and/or application agent 614, and/or substantiallyany other operational aspects of the UE 600.

FIG. 7 illustrates a block diagram of an example AP 700 (e.g.,femtocell, picocell, macro base station, etc.) in accordance with anaspect of the disclosed subject matter. The AP 700 can receive andtransmit signal(s) from and to wireless devices like access points(e.g., femtocells, picocells, base stations, etc.), access terminals(e.g., UEs), wireless ports and routers, and the like, through a set ofantennas 769 ₁-769 _(N). In an aspect, the antennas 769 ₁-769 _(N) are apart of a communication platform 702, which comprises electroniccomponents and associated circuitry that can provide for processing andmanipulation of received signal(s) and signal(s) to be transmitted. Inan aspect, the communication platform 702 can include areceiver/transmitter 704 that can convert signal from analog to digitalupon reception, and from digital to analog upon transmission. Inaddition, receiver/transmitter 704 can divide a single data stream intomultiple, parallel data streams, or perform the reciprocal operation.

In an aspect, coupled to receiver/transmitter 704 can be amultiplexer/demultiplexer (mux/demux) 706 that can facilitatemanipulation of signal in time and frequency space. The mux/demux 706can multiplex information (e.g., data/traffic and control/signaling)according to various multiplexing schemes such as, for example, timedivision multiplexing (TDM), frequency division multiplexing (FDM),orthogonal frequency division multiplexing (OFDM), code divisionmultiplexing (CDM), space division multiplexing (SDM), etc. In addition,mux/demux component 706 can scramble and spread information (e.g.,codes) according to substantially any code known in the art, e.g.,Hadamard-Walsh codes, Baker codes, Kasami codes, polyphase codes, and soon. A modulator/demodulator (mod/demod) 708 also can be part of thecommunication platform 702, and can modulate information according tomultiple modulation techniques, such as frequency modulation, amplitudemodulation (e.g., M-ary quadrature amplitude modulation (QAM), with M apositive integer), phase-shift keying (PSK), and the like.

In some implementations, the AP 700 can include (e.g., optionally) anapplication agent 710 that can perform various functions and operationsto facilitate controlling switching of application states based at leastin part on a mapping function associated with an application andinformation relating to communication conditions associated with thecommunication network and/or UE associated with the application, as morefully disclosed herein. In accordance with various implementations, anapplication agent can reside on the AP 700 and/or in another location(e.g., in the cloud, in the communication network, in a UE, etc.), basedat least in part on the type of application, type of AP, type of UE,number of potential concurrent users of an application, etc.

The AP 700 also can comprise a processor(s) 712 that can be configuredto confer and/or facilitate providing functionality, at least partially,to substantially any electronic component in or associated with the AP700. For instance, the processor(s) 712 can facilitate operations ondata (e.g., symbols, bits, or chips) for multiplexing/demultiplexing,modulation/demodulation, such as effecting direct and inverse fastFourier transforms, selection of modulation rates, selection of datapacket formats, inter-packet times, etc. The processor(s) 712 also canfacilitate performing other operations and/or functions on data, suchas, for example, performing various operations and/or functions tofacilitate controlling switching of application states based at least inpart on a mapping function associated with an application andinformation relating to communication conditions associated with thecommunication network and/or UE associated with the application.

In another aspect, the AP 700 can include a data store 714 that canstore data structures; code instructions; rate coding information;information relating to measurement of radio link quality or receptionof information related thereto; information relating to establishing acommunications connection between a communication device (e.g., UE) andother communication devices; system or device information like policiesand specifications; code sequences for scrambling; spreading and pilottransmission; floor plan configuration; access point deployment andfrequency plans; scheduling policies; and so on. The processor(s) 712can be coupled to the data store 714 in order to store and retrieveinformation (e.g., a desired algorithm (e.g., mapping algorithm),mapping function associated with an application, information relating tomultiplexing/demultiplexing or modulation/demodulation, informationrelating to radio link levels, information relating to establishingcommunication connections associated with a UE(s) served by the AP 700,etc.) desired to operate and/or confer functionality to thecommunication platform 702, and/or other operational components of AP700.

The aforementioned systems and/or devices have been described withrespect to interaction between several components. It should beappreciated that such systems and components can include thosecomponents or sub-components specified therein, some of the specifiedcomponents or sub-components, and/or additional components.Sub-components could also be implemented as components communicativelycoupled to other components rather than included within parentcomponents. Further yet, one or more components and/or sub-componentsmay be combined into a single component providing aggregatefunctionality. The components may also interact with one or more othercomponents not specifically described herein for the sake of brevity,but known by those of skill in the art.

In view of the example systems and/or devices described herein, examplemethods that can be implemented in accordance with the disclosed subjectmatter can be further appreciated with reference to flowcharts in FIGS.8-11. For purposes of simplicity of explanation, example methodsdisclosed herein are presented and described as a series of acts;however, it is to be understood and appreciated that the disclosedsubject matter is not limited by the order of acts, as some acts mayoccur in different orders and/or concurrently with other acts from thatshown and described herein. For example, a method disclosed herein couldalternatively be represented as a series of interrelated states orevents, such as in a state diagram. Moreover, interaction diagram(s) mayrepresent methods in accordance with the disclosed subject matter whendisparate entities enact disparate portions of the methods. Furthermore,not all illustrated acts may be required to implement a method inaccordance with the subject specification. It should be furtherappreciated that the methods disclosed throughout the subjectspecification are capable of being stored on an article of manufactureto facilitate transporting and transferring such methods to computersfor execution by a processor or for storage in a memory.

FIG. 8 illustrates a flow chart of an example method 800 for controllingapplication states of an application in accordance with various aspectsand embodiments. In accordance with various aspects, the method 800 canbe utilized by, for example, an application agent and/or an applicationmanagement component.

At 802, a mapping function associated with an application can beapplied, wherein the mapping function at least in part maps applicationstates of the application to wireless (e.g., radio) communication statesassociated with a UE that can use the application in a communicationnetwork. The application or application management component cangenerate the mapping function associated with the application. Themapping function also can include a mapping of other factors,parameters, and/or performance indicators (e.g., KPIs) in relation tothe mapping of the application states to the wireless communicationstates. The application agent can apply the mapping function tofacilitate controlling transitioning of the application betweenapplication states based at least in part the wireless communicationstate associated with the UE at a given time.

At 804, the application state of the application can be controlled basedat least in part on the mapping function. The application agent and/orapplication management component can control the application state ofthe application based at least in part on the mapping functionassociated with the application.

For instance, at certain times, the network congestion level can reach adefined high threshold network congestion level, which can be a networkcondition wherein it can be desirable to have qualified (e.g.,intelligent) applications transition to a doze state (e.g., whenpossible (e.g., when in accordance with an application's mappingfunction)). During those certain times, the application managementcomponent can generate a network congestion indicator, which canindicate that the network congestion level is at or above the definedhigh threshold network congestion level and, when in accordance withrespective mapping functions, qualified applications associated with thecommunication network are to be switched to the doze state. Theapplication agent(s) can receive the network congestion indicator, andapplying the respective mapping functions associated with the respectivequalified applications, the application agent(s) can transition at leastsome of the qualified applications to the doze state, when in accordancewith their respective mapping functions.

As another example, multiple applications can be operating at the sametime, wherein a first application is in an active state and a secondapplication is in a doze state. The wireless communication stateassociated with the multiple applications can be in an active orcommunication-ready state (e.g., FTCH or DCH). The application agent candetect that the wireless communication state is in an active orcommunication-ready state, and can determine that the second applicationis to be transitioned from the doze state to the active state based atleast in part on the mapping function associated with the secondapplication and the wireless communication state being in an active orcommunication-ready state. The application agent can generate controlinformation to facilitate switching the second application to the activestate. The second application can transition from the doze state to theactive state in response to the control information. As a result, thefirst application and second application can both be in the active stateand communicating (e.g., transmitting, receiving) voice or data whilethe wireless communication state in the active or communication-readystate. This can reduce signaling and switching involved in having thewireless communication channel be in an active or communication-readystate while the first application is in the active state, while thesecond application is in the doze state, followed by the wirelesscommunication channel switching to the idle state when the firstapplication switches to the doze state, followed by the wirelesscommunication channel switching back into the active orcommunication-ready state due to the second application switching fromthe doze state to the active state.

Referring next to FIG. 9, depicted is a flow chart of another examplemethod 900 for controlling an application state of an application inaccordance with various aspects and embodiments. In accordance withvarious aspects, the method 900 can be utilized by an application agent,for example.

At 902, a current network congestion level or status can be identified.The application agent can identify the current network congestion levelor status based at least in part on a receive network congestionindicator and/or network-congestion-related information detected by theapplication agent. At 904, a wireless state associated with a UE can beidentified, wherein the UE can be associated with an application and theapplication agent. The application agent can identify the wireless state(e.g., active or communication-ready state, such as, for example, FTCHor DCH; idle state, etc.) associated with the UE.

At 906, the current network congestion level or status, and the wirelessstate associated with the UE, can be analyzed in relation to a mappingfunction associated with the application. The application agent cananalyze the current network congestion level or status, and the wirelessstate associated with the UE, and can apply the mapping function to suchinformation. At 908, a determination can be made regarding anapplication state to which the application is to be set, based at leastin part on the analysis results. The application agent can determine oridentify which application state the application is to be set based atleast in part on the mapping function, the current network congestionlevel or status, and the wireless state associated with the UE.

At 910, an application state indicator can be generated based at leastin part on the determined application state. The application agent cangenerate control information, comprising the application stateindicator, wherein the application state indicator can be an indicatorthat is in accordance with the determined application state. Forexample, a first or active application state indicator can indicate thatthe application is to be set to the active state, and a second or dozeapplication state indicator can indicate that the application is to beset to the doze state.

At 912, the application state indicator can be transmitted to theapplication to facilitate controlling an application state of theapplication based at least in part on the application state indicator.The application agent can transmit the control information, includingthe application state indicator to the application. The application canswitch to a desired application state (or can maintain the desiredapplication state) in accordance with the value (e.g., first or activevalue; or second or doze value) of the application state indicator.

Turning to FIG. 10, illustrated is a flow chart of still another examplemethod 1000 for controlling an application state of an application inaccordance with various aspects and embodiments. The method 1000 can beemployed by an application management component, for example.

At 1002, a network congestion level of the communication network can beidentified (e.g., by the application management component). At 1004, thenetwork congestion level can be compared to a defined high (e.g.,maximum) threshold network congestion level. The application managementcomponent can compare the identified network congestion level to thedefined high threshold network congestion level.

At 1006, a determination can be made regarding whether the networkcongestion level is at or above the defined high threshold networkcongestion level. The application management component can determinewhether the network congestion level is at or above the defined highthreshold network congestion level to facilitate determining whether anapplication state of one or more applications is to be changed.

At 1008, a network congestion indicator, which indicates the networkcongestion level is too high, can be generated, in response todetermining that the network congestion level is at or above the definedhigh threshold network congestion level. The application managementcomponent can generate the network congestion indicator in response tothe application management component determining that the networkcongestion level is at or above the defined high threshold networkcongestion level. If the application management component determinesthat the network congestion level is below the defined high thresholdnetwork congestion level, the application management component candetermine that no network congestion indicator is be generated, or cangenerate a different network congestion indicator (e.g., indicating thenetwork congestion level is not too high).

At 1010, the network congestion indicator can be transmitted to one ormore application agents associated with one or more applications tofacilitate transitioning at least a portion of the one or moreapplications to a doze state. The application management component cantransmit the network congestion indicator to one or more applicationagents, wherein each application agent can be associated with one ormore applications. The one or more application agents can receive thenetwork congestion indicator, and can analyze the network congestionindicator and/or other factors or parameters, and can apply a mappingfunction(s) associated with an application(s) to facilitate determiningwhich applications are to be switched to or maintained in the dozestate. It can be desirable to place the application in the doze statebased on the network congestion indicator, due to the network congestionlevel being too high, and typically a significant portion ofapplications can be set to the doze state, based at least in part ontheir respective mapping functions and the network congestion indicator.However, for certain applications (e.g., an application with a certainperformance indicator(s) that indicates the application hastime-critical performance constraints, at least at this time, whichmakes it desirable to maintain the application in the active state),based at least in part on the mapping function of such an application,an application may still desire to be in an active state, even when thenetwork congestion indicator indicates the network congestion level istoo high. In such instance, that application can remain in the activestate. As a result, based at least in part on the network congestionindicator and the respective mapping functions of the one or moreapplications, the one or more application agents can transition at leasta portion of the one or more applications to the doze state.

FIG. 11 presents a flow chart of an example method 1100 for certifyingan application as a qualified (e.g., intelligent) application tofacilitate controlling switching of application states of theapplication in accordance with various aspects and embodiments. Themethod 1100 can be employed by an application management component, forexample.

At 1102, information indicating an application's qualifications to becertified as a qualified (e.g., intelligent) application can bereceived. The application management component can receive suchinformation from an application and/or an application agent associatedwith the application. The information can include, for example,information relating to available application states of the application,information indicating whether the application (and/or the associatedapplication agent) will comply with applicable application-controlrules, an SDK(s), and/or an API(s); the application (and/or theassociated application agent) will provide information regarding itscurrent application state when desired by the application managementcomponent; and/or other information that may be relevant to determiningwhether the application satisfies the defined certificationcriterion(s).

At 1104, the received information can be evaluated (e.g., compared) inrelation to the defined certification criterion(s). The applicationmanagement component can evaluate the received information in relationto the defined certification criterion(s) to determine whether theapplication qualifies to be certified as a qualified application.

At 1106, the application can be certified (e.g., automatically) as aqualified application in response to determining that the applicationmeets the defined certification criterion(s). The application managementcomponent can certify the application as a qualified application inresponse to determining that the application meets the definedcertification criterion(s). The application management component and theapplication agent associated with the application can exchange otherinformation, such as application-control rules, an SDK(s), an API(s),resource probes, etc., which the application agent can use to facilitatecontrolling switching of application states of the application. In someimplementations, the SDK(s) or API(s) can be provided to the applicationagent, wherein the application agent can use the SDK(s) or API(s) tofacilitate certifying the application with the application managementcomponent. The application and/or application agent also can provide theapplication management component with performance indicators (e.g.,KPIs) or other information relating to operations, characteristics,and/or categorization of the application. In accordance with variousimplementations, the application agent and/or application managementcomponent can generate a mapping function associated with theapplication, as more fully disclosed herein.

In order to provide a context for the various aspects of the disclosedsubject matter, FIGS. 12 and 13 as well as the following discussion areintended to provide a brief, general description of a suitableenvironment in which the various aspects of the disclosed subject mattermay be implemented. While the subject matter has been described above inthe general context of computer-executable instructions of a computerprogram that runs on a computer and/or computers, those skilled in theart will recognize that this disclosure also can or may be implementedin combination with other program modules. Generally, program modulesinclude routines, programs, components, data structures, etc. thatperform particular tasks and/or implement particular abstract datatypes. Moreover, those skilled in the art will appreciate that themethods may be practiced with other computer system configurations,including single-processor or multiprocessor computer systems,mini-computing devices, mainframe computers, as well as personalcomputers, hand-held computing devices (e.g., PDA, phone, electronictablets or pads, etc.), microprocessor-based or programmable consumer orindustrial electronics, and the like. The illustrated aspects may alsobe practiced in distributed computing environments where tasks areperformed by remote processing devices that are linked through acommunications network. However, some, if not all aspects of thisdisclosure can be practiced on stand-alone computers. In a distributedcomputing environment, program modules may be located in both local andremote memory storage devices.

With reference to FIG. 12, a suitable environment 1200 for implementingvarious aspects of this disclosure includes a computer 1212. Thecomputer 1212 includes a processing unit 1214, a system memory 1216, anda system bus 1218. It is to be appreciated that the computer 1212 can beused in connection with implementing one or more of the systems orcomponents shown and described in connection with FIGS. 1-7. The systembus 1218 couples system components including, but not limited to, thesystem memory 1216 to the processing unit 1214. The processing unit 1214can be any of various available processors. Dual microprocessors andother multiprocessor architectures also can be employed as theprocessing unit 1214.

The system bus 1218 can be any of several types of bus structure(s)including the memory bus or memory controller, a peripheral bus orexternal bus, and/or a local bus using any variety of available busarchitectures including, but not limited to, Industrial StandardArchitecture (ISA), Micro-Channel Architecture (MSA), Extended ISA(EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus(USB), Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), Firewire (IEEE 1394), and SmallComputer Systems Interface (SCSI).

The system memory 1216 includes volatile memory 1220 and nonvolatilememory 1222. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer1212, such as during start-up, is stored in nonvolatile memory 1222. Byway of illustration, and not limitation, nonvolatile memory 1222 caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable programmable ROM(EEPROM), flash memory, or nonvolatile random access memory (RAM) (e.g.,ferroelectric RAM (FeRAM)). Volatile memory 1220 includes random accessmemory (RAM), which acts as external cache memory. By way ofillustration and not limitation, RAM is available in many forms such asstatic RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), doubledata rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM(SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM),and Rambus dynamic RAM.

Computer 1212 also includes removable/non-removable,volatile/nonvolatile computer storage media. FIG. 12 illustrates, forexample, a disk storage 1224. Disk storage 1224 includes, but is notlimited to, devices like a magnetic disk drive, floppy disk drive, tapedrive, Jaz drive, Zip drive, LS-100 drive, flash memory card, or memorystick. The disk storage 1224 also can include storage media separatelyor in combination with other storage media including, but not limitedto, an optical disk drive such as a compact disk ROM device (CD-ROM), CDrecordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or adigital versatile disk ROM drive (DVD-ROM). To facilitate connection ofthe disk storage devices 1224 to the system bus 1218, a removable ornon-removable interface is typically used, such as interface 1226.

FIG. 12 also depicts software that acts as an intermediary between usersand the basic computer resources described in the suitable operatingenvironment 1200. Such software includes, for example, an operatingsystem 1228. Operating system 1228, which can be stored on disk storage1224, acts to control and allocate resources of the computer system1212. System applications 1230 take advantage of the management ofresources by operating system 1228 through program modules 1232 andprogram data 1234 stored, e.g., in system memory 1216 or on disk storage1224. It is to be appreciated that this disclosure can be implementedwith various operating systems or combinations of operating systems.

A user enters commands or information into the computer 1212 throughinput device(s) 1236. Input devices 1236 include, but are not limitedto, a pointing device such as a mouse, trackball, stylus, touch pad,keyboard, microphone, joystick, game pad, satellite dish, scanner, TVtuner card, digital camera, digital video camera, web camera, and thelike. These and other input devices connect to the processing unit 1214through the system bus 1218 via interface port(s) 1238. Interfaceport(s) 1238 include, for example, a serial port, a parallel port, agame port, and a universal serial bus (USB). Output device(s) 1240 usesome of the same type of ports as input device(s) 1236. Thus, forexample, a USB port may be used to provide input to computer 1212, andto output information from computer 1212 to an output device 1240.Output adapter 1242 is provided to illustrate that there are some outputdevices 1240 like monitors, speakers, and printers, among other outputdevices 1240, which require special adapters. The output adapters 1242include, by way of illustration and not limitation, video and soundcards that provide a means of connection between the output device 1240and the system bus 1218. It should be noted that other devices and/orsystems of devices provide both input and output capabilities such asremote computer(s) 1244.

Computer 1212 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)1244. The remote computer(s) 1244 can be a personal computer, a server,a router, a network PC, a workstation, a microprocessor based appliance,a peer device or other common network node and the like, and typicallyincludes many or all of the elements described relative to computer1212. For purposes of brevity, only a memory storage device 1246 isillustrated with remote computer(s) 1244. Remote computer(s) 1244 islogically connected to computer 1212 through a network interface 1248and then physically connected via communication connection 1250. Networkinterface 1248 encompasses wire and/or wireless communication networkssuch as local-area networks (LAN), wide-area networks (WAN), cellularnetworks, etc. LAN technologies include Fiber Distributed Data Interface(FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ringand the like. WAN technologies include, but are not limited to,point-to-point links, circuit switching networks like IntegratedServices Digital Networks (ISDN) and variations thereon, packetswitching networks, and Digital Subscriber Lines (DSL).

Communication connection(s) 1250 refers to the hardware/softwareemployed to connect the network interface 1248 to the bus 1218. Whilecommunication connection 1250 is shown for illustrative clarity insidecomputer 1212, it can also be external to computer 1212. Thehardware/software necessary for connection to the network interface 1248includes, for exemplary purposes only, internal and externaltechnologies such as, modems including regular telephone grade modems,cable modems and DSL modems, ISDN adapters, and Ethernet cards.

FIG. 13 is a schematic block diagram of a sample-computing environment1300 (e.g., computing system) with which the subject matter of thisdisclosure can interact. The system 1300 includes one or more client(s)1310. The client(s) 1310 can be hardware and/or software (e.g., threads,processes, computing devices). The system 1300 also includes one or moreserver(s) 1330. Thus, system 1300 can correspond to a two-tier clientserver model or a multi-tier model (e.g., client, middle tier server,data server), amongst other models. The server(s) 1330 can also behardware and/or software (e.g., threads, processes, computing devices).The servers 1330 can house threads to perform transformations byemploying this disclosure, for example. One possible communicationbetween a client 1310 and a server 1330 may be in the form of a datapacket transmitted between two or more computer processes.

The system 1300 includes a communication framework 1350 that can beemployed to facilitate communications between the client(s) 1310 and theserver(s) 1330. The client(s) 1310 are operatively connected to one ormore client data store(s) 1320 that can be employed to store informationlocal to the client(s) 1310. Similarly, the server(s) 1330 areoperatively connected to one or more server data store(s) 1340 that canbe employed to store information local to the servers 1330.

It is to be noted that aspects, features, and/or advantages of thedisclosed subject matter can be exploited in substantially any wirelesstelecommunication or radio technology, e.g., Wi-Fi; Bluetooth; WorldwideInteroperability for Microwave Access (WiMAX); Enhanced General PacketRadio Service (Enhanced GPRS); Third Generation Partnership Project(3GPP) Long Term Evolution (LTE); Third Generation Partnership Project 2(3GPP2) Ultra Mobile Broadband (UMB); 3GPP Universal MobileTelecommunication System (UMTS); High Speed Packet Access (HSPA); HighSpeed Downlink Packet Access (HSDPA); High Speed Uplink Packet Access(HSUPA); GSM (Global System for Mobile Communications) EDGE (EnhancedData Rates for GSM Evolution) Radio Access Network (GERAN); UMTSTerrestrial Radio Access Network (UTRAN); LTE Advanced (LTE-A); etc.Additionally, some or all of the aspects described herein can beexploited in legacy telecommunication technologies, e.g., GSM. Inaddition, mobile as well non-mobile networks (e.g., the Internet, dataservice network such as Internet protocol television (IPTV), etc.) canexploit aspects or features described herein.

Various aspects or features described herein can be implemented as amethod, apparatus, system, or article of manufacture using standardprogramming or engineering techniques. In addition, various aspects orfeatures disclosed in the subject specification can also be realizedthrough program modules that implement at least one or more of themethods disclosed herein, the program modules being stored in a memoryand executed by at least a processor. Other combinations of hardware andsoftware or hardware and firmware can enable or implement aspectsdescribed herein, including disclosed method(s). The term “article ofmanufacture” as used herein is intended to encompass a computer programaccessible from any computer-readable device, carrier, or storage media.For example, computer readable storage media can include but are notlimited to magnetic storage devices (e.g., hard disk, floppy disk,magnetic strips . . . ), optical discs (e.g., compact disc (CD), digitalversatile disc (DVD), blu-ray disc (BD) . . . ), smart cards, and flashmemory devices (e.g., card, stick, key drive . . . ), or the like.

As it is employed in the subject specification, the term “processor” canrefer to substantially any computing processing unit or devicecomprising, but not limited to, single-core processors;single-processors with software multithread execution capability;multi-core processors; multi-core processors with software multithreadexecution capability; multi-core processors with hardware multithreadtechnology; parallel platforms; and parallel platforms with distributedshared memory. Additionally, a processor can refer to an integratedcircuit, an application specific integrated circuit (ASIC), a digitalsignal processor (DSP), a field programmable gate array (FPGA), aprogrammable logic controller (PLC), a complex programmable logic device(CPLD), a discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. Further, processors can exploit nano-scalearchitectures such as, but not limited to, molecular and quantum-dotbased transistors, switches and gates, in order to optimize space usageor enhance performance of user equipment. A processor may also beimplemented as a combination of computing processing units.

In the subject specification, terms such as “store,” “storage,” “datastore,” data storage,” “database,” and substantially any otherinformation storage component relevant to operation and functionality ofa component are utilized to refer to “memory components,” entitiesembodied in a “memory,” or components comprising a memory. It is to beappreciated that memory and/or memory components described herein can beeither volatile memory or nonvolatile memory, or can include bothvolatile and nonvolatile memory.

By way of illustration, and not limitation, nonvolatile memory caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable ROM (EEPROM), or flashmemory. Volatile memory can include random access memory (RAM), whichacts as external cache memory. By way of illustration and notlimitation, RAM is available in many forms such as synchronous RAM(SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rateSDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), anddirect Rambus RAM (DRRAM). Additionally, the disclosed memory componentsof systems or methods herein are intended to comprise, without beinglimited to comprising, these and any other suitable types of memory.

As used in this application, the terms “component”, “system”,“platform”, “framework”, “layer”, “interface”, “agent”, and the like,can refer to and/or can include a computer-related entity or an entityrelated to an operational machine with one or more specificfunctionalities. The entities disclosed herein can be either hardware, acombination of hardware and software, software, or software inexecution. For example, a component may be, but is not limited to being,a process running on a processor, a processor, an object, an executable,a thread of execution, a program, and/or a computer. By way ofillustration, both an application running on a server and the server canbe a component. One or more components may reside within a processand/or thread of execution and a component may be localized on onecomputer and/or distributed between two or more computers.

In another example, respective components can execute from variouscomputer readable media having various data structures stored thereon.The components may communicate via local and/or remote processes such asin accordance with a signal having one or more data packets (e.g., datafrom one component interacting with another component in a local system,distributed system, and/or across a network such as the Internet withother systems via the signal). As another example, a component can be anapparatus with specific functionality provided by mechanical partsoperated by electric or electronic circuitry, which is operated by asoftware or firmware application executed by a processor. In such acase, the processor can be internal or external to the apparatus and canexecute at least a part of the software or firmware application. As yetanother example, a component can be an apparatus that provides specificfunctionality through electronic components without mechanical parts,wherein the electronic components can include a processor or other meansto execute software or firmware that confers at least in part thefunctionality of the electronic components. In an aspect, a componentcan emulate an electronic component via a virtual machine, e.g., withina cloud computing system.

In addition, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or.” That is, unless specified otherwise, or clearfrom context, “X employs A or B” is intended to mean any of the naturalinclusive permutations. That is, if X employs A; X employs B; or Xemploys both A and B, then “X employs A or B” is satisfied under any ofthe foregoing instances. Moreover, articles “a” and “an” as used in thesubject specification and annexed drawings should generally be construedto mean “one or more” unless specified otherwise or clear from contextto be directed to a singular form.

Moreover, terms like “user equipment” (UE), “mobile station,” “mobile,”“wireless device,” “wireless communication device,” “subscriberstation,” “subscriber equipment,” “access terminal,” “terminal,”“handset,” and similar terminology are used herein to refer to awireless device utilized by a subscriber or user of a wirelesscommunication service to receive or convey data, control, voice, video,sound, gaming, or substantially any data-stream or signaling-stream. Theforegoing terms are utilized interchangeably in the subjectspecification and related drawings. Likewise, the terms “access point”(AP), “base station,” “Node B,” “Evolved Node B” (eNode B or eNB), “HomeNode B” (HNB), “home access point” (HAP), and the like are utilizedinterchangeably in the subject application, and refer to a wirelessnetwork component or appliance that serves and receives data, control,voice, video, sound, gaming, or substantially any data-stream orsignaling-stream from a set of subscriber stations. Data and signalingstreams can be packetized or frame-based flows.

Furthermore, the terms “user,” “subscriber,” “customer,” “consumer,”“owner,” “agent,” and the like are employed interchangeably throughoutthe subject specification, unless context warrants particulardistinction(s) among the terms. It should be appreciated that such termscan refer to human entities or automated components supported throughartificial intelligence (e.g., a capacity to make inference based oncomplex mathematical formalisms), which can provide simulated vision,sound recognition and so forth.

As used herein, the terms “example,” “exemplary,” and/or “demonstrative”are utilized to mean serving as an example, instance, or illustration.For the avoidance of doubt, the subject matter disclosed herein is notlimited by such examples. In addition, any aspect or design describedherein as an “example,” “exemplary,” and/or “demonstrative” is notnecessarily to be construed as preferred or advantageous over otheraspects or designs, nor is it meant to preclude equivalent exemplarystructures and techniques known to those of ordinary skill in the art.Furthermore, to the extent that the terms “includes,” “has,” “contains,”and other similar words are used in either the detailed description orthe claims, such terms are intended to be inclusive, in a manner similarto the term “comprising” as an open transition word, without precludingany additional or other elements.

It is to be appreciated and understood that components (e.g.,communication device, UE, AP, communication network, application,application agent, application management component, etc.), as describedwith regard to a particular system or method, can include the same orsimilar functionality as respective components (e.g., respectively namedcomponents or similarly named components) as described with regard toother systems or methods disclosed herein.

What has been described above includes examples of systems and methodsthat provide advantages of the disclosed subject matter. It is, ofcourse, not possible to describe every conceivable combination ofcomponents or methods for purposes of describing the disclosed subjectmatter, but one of ordinary skill in the art may recognize that manyfurther combinations and permutations of the disclosed subject matterare possible. Furthermore, to the extent that the terms “includes,”“has,” “possesses,” and the like are used in the detailed description,claims, appendices and drawings such terms are intended to be inclusivein a manner similar to the term “comprising” as “comprising” isinterpreted when employed as a transitional word in a claim.

What is claimed is:
 1. A method, comprising: receiving, by a systemcomprising a processor, network congestion information associated with alevel of network congestion for a communication network; and in responseto receiving the network congestion information, controlling, by thesystem, transitioning an application between application states based onthe network congestion information and a mapping function that maps theapplication states of the application to wireless communication statesassociated with a device that is associated with the application.
 2. Themethod of claim 1, wherein the receiving the network congestioninformation comprises receiving at least a portion of the networkcongestion information, comprising a network congestion indicator, froma network device associated with the communication network.
 3. Themethod of claim 1, further comprising: detecting, by the system,communication conditions of network devices associated with the level ofthe network congestion to facilitate the receiving of at least a portionof the network congestion information.
 4. The method of claim 1, whereinthe application states comprise an active state and an inactive state,and wherein the transitioning comprises transitioning the applicationfrom the active state to the inactive state based on the networkcongestion information being determined to indicate that the level ofthe network congestion has breached a defined threshold networkcongestion level associated with the communication network.
 5. Themethod of claim 4, wherein the network congestion information indicatesthe level of the network congestion has breached the defined thresholdnetwork congestion level associated with the communication network, andwherein the method further comprises: based on a result of analyzing themapping function and the network congestion information, determining, bythe system, that the application is to transition from the active stateto the inactive state, wherein the transitioning the application fromthe active state to the inactive state comprises transitioning theapplication from the active state to the inactive state in response tothe determining.
 6. The method of claim 1, wherein the applicationstates comprise an active state and an inactive state, and wherein thetransitioning comprises transitioning the application from the inactivestate to the active state based on the network congestion informationbeing determined to indicate that the level of the network congestionhas not breached a defined threshold network congestion level associatedwith the communication network.
 7. The method of claim 1, wherein theapplication states comprise an active state and an inactive state,wherein the wireless communication states comprise a communication-readystate and an idle state, wherein the network congestion information isdetermined to indicate that the level of the network congestion hasbreached a defined threshold network congestion level associated withthe communication network, wherein the transitioning comprises: inresponse to determining that the device is in the communication-readystate, transitioning the application from the inactive state to theactive state based on applying the mapping function to the networkcongestion information and performance indicator information associatedwith the application, and wherein the performance indicator informationindicates that the application has performance constraints that satisfya defined level of time criticality for the application to be in theactive state though the network congestion has breached the definedthreshold network congestion level.
 8. The method of claim 1, whereinthe application states comprise an active state and an inactive state,wherein the wireless communication states comprise a communication-readystate and an idle state, wherein the application is a first application,and wherein the method further comprises: receiving, by the system, aninstruction to transition the first application from the inactive stateto the active state to facilitate synchronizing communication of firsttraffic associated with the first application via a communicationchannel in connection with communication of second traffic associatedwith a second application via the communication channel for a timeperiod during which the communication channel is associated with thecommunication-ready state; and transitioning, by the system, the firstapplication from the inactive state to the active state in response tothe receiving the instruction.
 9. The method of claim 1, furthercomprising: communicating, by the system, with a media access controllayer associated with a network device of the communication network;receiving, by the system, event information from the media accesscontrol layer, wherein the event information relates to an eventassociated with the communication network; and determining, by thesystem, the application is to be transitioned from a first applicationstate of the application states to a second application state of theapplication states, based on an analysis of the event information, awireless communication state associated with the device, and the mappingfunction.
 10. A system, comprising: a processor; and a memory thatstores executable instructions that, when executed by the processor,facilitate performance of operations, comprising: receiving networkcongestion data that indicates a network congestion level for acommunication network; and in response to receiving the networkcongestion indicator, facilitating controlling a transition of anapplication between application states, based on the network congestiondata and a mapping function that maps the application states of theapplication to radio states associated with a device that utilizes theapplication.
 11. The system of claim 10, wherein the application statescomprise an active state and a doze state, and wherein the operationsfurther comprise: determining that the application is to transition fromthe active state to the doze state, based on a result of analyzing themapping function and the network congestion data, wherein the networkcongestion data indicates a defined threshold network congestion levelassociated with network devices of the communication network has beenexceeded; and transitioning the application from the active state to thedoze state in response to the determining that the application is totransition from the active state to the doze state.
 12. The system ofclaim 10, wherein the application states comprise an active state and adoze state, wherein the radio states comprise a communication-readystate and an idle state, and wherein the operations further comprise: inresponse to a determination that the device is in thecommunication-ready state, transitioning the application from the dozestate to the active state, based on a result of analyzing the mappingfunction and the network congestion data, wherein the network congestiondata indicates the network congestion level has not exceeded a definedthreshold network congestion level associated with network devices ofthe communication network.
 13. The system of claim 10, wherein theapplication states comprise an active state and a doze state, whereinthe radio states comprise a communication-ready state and an idle state,wherein the application is a first application, and wherein theoperations further comprise: receiving an instruction to transition thefirst application from the doze state to the active state to facilitatesynchronization of communication of first traffic associated with thefirst application via a communication channel in connection withcommunication of second traffic associated with a second application viathe communication channel during a time period within which thecommunication channel is associated with the communication-ready state;and transitioning the first application from the doze state to theactive state in response to receipt of the instruction.
 14. The systemof claim 10, wherein the receiving the network congestion data and thefacilitating the controlling of the transition of the applicationbetween the application states are performed by a component of thesystem, wherein the component is associated with a network deviceassociated with the communication network, and wherein the component isassociated with the device via the network device.
 15. The system ofclaim 10, wherein the operations further comprise: communicating with aphysical layer associated with a network device of network devicesassociated with the communication network; and receiving stateinformation from the physical layer, wherein the state informationrelates to a state associated with a group of the network devices,wherein the controlling the transition of the application comprisescontrolling the transition of the application between the applicationstates based on the network congestion indicator, a radio stateassociated with the device, the mapping function, and the stateinformation associated with the group of the network devices.
 16. Thesystem of claim 10, wherein the operations further comprise: generatingthe mapping function based on the application states, the radio states,and a performance indicator associated with the application.
 17. Thesystem of claim 10, wherein the operations further comprise:transmitting performance indicator data relating to a performanceindicator associated with the application to an application managerassociated with the communication network to facilitate certifying theapplication as a qualified application with the application manager; andin response to the application being certified as the qualifiedapplication, receiving policy data relating to a communication networkpolicy that is applicable to the application, wherein the policy data isemployed to facilitate the controlling of the transition of theapplication between the application states.
 18. The system of claim 17,wherein the performance indicator data comprises category data relatingto an application category associated with the application andelasticity data that indicates an elasticity level associated with theapplication, wherein the elasticity level relates to an amount ofcommunication delay with a network device associated with thecommunication network that is tolerable by the application withoutinterruption of service of the application, and wherein the applicationcategory comprises at least one application category of applicationcategories comprising video streaming, audio streaming, multimedia,electronic gaming, and voice over Internet protocol.
 19. Amachine-readable storage medium, comprising executable instructionsthat, when executed by a processor, facilitate performance ofoperations, comprising: determining a level of network congestionassociated with a communication network; and in response to determiningthe level of the network congestion associated with the communicationnetwork, controlling switching of an application between applicationstates based on the level of the network congestion and a mappingfunction that maps the application states associated with theapplication to wireless communication states associated with a devicethat is associated with the application.
 20. The machine-readablestorage medium of claim 19, wherein the operations further comprise:determining whether the application is to be switched between an activestate of the application states and an inactive state of the applicationstates based on a result of analyzing the level of the networkcongestion and the mapping function; generating network congestioninformation to facilitate switching the application between the activestate and the inactive state, in response to determining that theapplication is to be switched between the active state and the inactivestate; and transmitting the network congestion information to anapplication agent associated with the application to facilitateswitching the application between the active state and the inactivestate.